SQL kodu ile çekilen kayıtlar harici

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

SQL kodu ile çekilen kayıtlar harici

Mesaj gönderen kuntay »

Kod: Tümünü seç

  SELECT DISTINCT www 
FROM data  
Bu şekilde çektiğim kayıtlar dışında kalan kayıtları nasıl silebilirim.
yani tablodan çektiklerim Kalacak geriye kalanlar silinecek.

Not : burda birbirinin aynı olan satırları elemek için kullanıyorum ve geriye kalanlar da silinmeli.
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Sanırım başka bir tablodan sileceksin.

Kod: Tümünü seç

delete from tablo_adı
where www not in (SELECT DISTINCT www FROM data)
Eğer aynı tablo ise çok mantıklı olmaz. Select distinct ibaresi tablodaki tüm kayıtları seçer. Neleri silmek istiyorsunuz söylerseniz ona göre kod verilir.

Kolay gelsin.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

Muhakkak kod veya sp şeklinde yapılabiliyordur ama aklıma çözüm olarak çektiğin kayıtları mem tabloya aktardıktan sonra asıl tabloyu tümüyle sildikten sonra mem tablodaki verileri tekrar asıl tabloya aktardığında çektiklerin kalmış diğerleri silinmiş olur.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

Mesaj gönderen kuntay »

Şöyle anlatim bir log dosyası var elimde bu log dosyasında networkde internete çıkan makinelerin logları var ben bu log ları önce excele ordanda veritabanına (paradox) atıyorum. burda tabi kişinin girdiği websiteleri birhayli fazla
Örneğin :

Kullanıcı Adı www
Hasan http://www.delphiturkiye.com
Hasan http://www.delphiturkiye.com
Hasan http://www.delphiturkiye.com
mehmet http://www.mynet.com
mehmet http://www.mynet.com

Şimdi bu şekilde bir tablo oluşuyor bende www alanında tekrarlanan kayıtları

Kod: Tümünü seç

SELECT DISTINCT www 
FROM data 
Sql koduyla www alanındaki kayıtları eliyorum şimdi çektiğim kayıtlar bana lazım geriye kalanları silmek istiyorum çünkü kayıt okdar fazlaki vt çok şişiyor.
Yani işlem aynı tabloda gerçekleşiyor admin kardeş.

Bu arada mem tablo hiç kullanmadım.
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
kayıt okdar fazlaki vt çok şişiyor
peki kayıtları sildiğin zaman vt küçülecekmi?

Bu alanlara unique index tanımlasan olmazmı?

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

Mesaj gönderen kuntay »

Evet tablodan çektiğim kayıtlar dışında kalan kayıtları silersem vt şişmeyecek. Nedeni

hasan kullanıcısı http://www.mynet.com sitesini 1000 defa ziyaret ettiyse
ben sadece 1000 kayıttan birini bırakmış olacam gerisi silinmiş olacak.
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

veritabanından kayıt sildikçe dataların boyutları sildiğin bilgiler dahilinde otomatik olarak küçülmez.Bu işlem için tabloyu pack etmen lazım.Bununla ilgili kodları forumda bulamazsan tekrar yazarsın.Elimde örnekler olacaktı gönderirim.Kolay gelsin
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Analdığım kadarıyla sen sadece ziyaret edilen siteleri görmek istiyorsun. Ben olsam şöyle yapardım.

1. Bir program yazar, logdan verileri alırken önce site varmı kontrol ettirir, yoksa eklerdim. Böylece sadece tek bir kayıt olurdu.

2. Olduki tabloya atmak kolayına geldi, o zaman ZIYARET_EDILEN_WEB_SITELERI diye 2. bir tablo açar, sadece WEB_SITESI diye bir alan koyardım ve

insert into ZIYARET_EDILEN_WEB_SITELERI (SELECT DISTINCT www FROM data)

yapardım.

Kolay gelsin.
Kullanıcı avatarı
interboy
Üye
Mesajlar: 84
Kayıt: 18 Mar 2005 02:52

Mesaj gönderen interboy »

bencede bi aracı programcıkla tablodaki werileri kontrol ederek alıp yeni bi tabloya alırsın.daha sonra eski tablonu full silip oraya atarsın kayıtları. ve programda kodlamada biraz değişiklik yaparsın insert ederken kontrol ettirirsin önceden warmıymış bu site diye.

mesela yeni bi kolon oluşturup ziyaret etme sayısı diye. adam önceden o siteye girdiyse yeni kayıt eklemek yerine ziyaret sayısını arttırabilirsin.

selametle..
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

Sorunu Hallettim...

Mesaj gönderen kuntay »

Şu şekilde çözdüm geçici tablo olayı oluşturdum geçici tabloya tüm kayıtları alıyorum orda çektiğim kayıtları gerçek tabloma atıyorum geçici tabloyu boşaltıyorum en kolay yolu bu oldu bana Herkesten Allah razı olsun.
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
Cevapla