• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

3 sütundaki benzer kayıtları bulma sorgusu

Katılım
26 Aralık 2004
Mesajlar
24
Merhaba,
1 tablo var, 10 sutun var
3 sütunu birden aynı olan (adı - soyadı - babaadı) benzer kayıtlar var (yüzlerce)


ben sorguda sadece 2 den fazla olan benzer kayıtları sorgulamak istiyorum.

adı------soyadı------babaadı
ali--------ak---------osman
ali--------ak---------osman
ali--------ak---------osman


adı------soyadı------babaadı
ahmet----pak---------hasan
ahmet----pak---------hasan
ahmet----pak---------hasan

bunun gibi bu üç sütunda , 2 den fazla tekrar eden kayıtları gösteren bir sorgu yapmak istiyorum

yardımlarınız için teşekkürler.
 
Sayın samsuni,

Olurda basit bir örnek eklerseniz daha çabuk sonuca ulaşabilirsiniz.
 
hazırladığım örnekte tarih plaka km alanları var 3 alan üzerinden yapıldı sen de aşağıdaki örneğe bakarak kendi alanların ile değiştirwerek yapabilirsin iyi çalışmalar
SELECT First([ana tablo].tarih) AS tarihAlan, First([ana tablo].plaka) AS plakaAlan, First([ana tablo].km) AS kmAlan, Count([ana tablo].tarih) AS YinelemeSayısı
FROM [ana tablo]
GROUP BY [ana tablo].tarih, [ana tablo].plaka, [ana tablo].km
HAVING (((Count([ana tablo].tarih))>2) AND ((Count([ana tablo].km))>2));
 
sayın Yurdakul

sizin verdiğiniz kodlar işime yaradı teşekkür ederim ancak,
2 den fazla olan benzer kayıtların sayısını veriyor ve sadece ilk satırlarını gösteriyor,
ben aynı zamanda 2 den fazla kaç satır varsa hepsinide göstersin istiyorum.
 
Merhaba;
Tablo ismini düzeltiniz ve gerekiyorsa alan isimlerini de...

SELECT a.adı, a.soyadı, a.babaadı,
(select count(adı&soyadı&babaadı) from table1 where adı&soyadı&babaadı=a.adı&a.soyadı&a.babaadı) as tekrar_adet
FROM Table1 AS a
WHERE ((((select count(adı&soyadı&babaadı) from table1 where adı&soyadı&babaadı=a.adı&a.soyadı&a.babaadı))>2))
ORDER BY a.adı;
 
sayın yurdakulun verdiği kodlara göre bir örnek dosya ekliyorum.
örnekteki sorguda 2 den fazla 3 sutunuda aynı olan satırların sayısını veriyor ancak tek satırını gösteriyor.

bana lazım olan ise 3 kayıt varsa 3 satırıda göstersin ekteki örnekten anlaşılır umarım.


beab05 verdiğiniz kodlarda ise sorgu hiç açılmıyor.
 

Ekli dosyalar

Son düzenleme:
Nasıl olmuyor anlamadım sizi tablo ve alan isimleri için uyarmıştım..

SELECT a.adı, a.soyadı, a.babaadı,
(select count(adı&soyadı&babaadı) from adresler where adı&soyadı&babaadı=a.adı&a.soyadı&a.babaadı) as tekrar_adet
FROM adresler AS a
WHERE ((((select count(adı&soyadı&babaadı) from adresler where adı&soyadı&babaadı=a.adı&a.soyadı&a.babaadı))>2))
ORDER BY a.adı;
 
sayın beab05,

herhalde dikkatimden kaçmış olacak sizin verdiğiniz kodlar tam istediğim gibi oldu

çok teşekkür ediyorum.düzelttiğim dosyayıda ekliyorum.
 

Ekli dosyalar

beab05

kodlar çalışıyor ancak 85000 kayıtlı tabloya uyarladığımda sorgu açılmak bilmiyor
3000 kayıtlı tabloda bile baya geç açılıyor.

bu sorunada bir çözüm bulursanız sevinirim.
 
Merhaba..

Sorgulanacak verileriniz çoksa bu yöntem daha efektif olacaktır.

Kod:
SELECT Trz.Adı, Trz.Soyadı, Trz.Babaadı, Beab.trz
FROM (SELECT Adı, Soyadı, Babaadı, Count(([adı] & [soyadı] & [Babaadı])) AS trz, ([adı] & [soyadı] & [Babaadı]) AS trza
FROM adresler AS z
GROUP BY Adı, Soyadı, Babaadı, ([adı] & [soyadı] & [Babaadı])
HAVING (((Count(([adı] & [soyadı] & [Babaadı])))>2))
ORDER BY Adı) AS Beab INNER JOIN (SELECT Adı, Soyadı, Babaadı, ([adı] & [soyadı] & [Babaadı]) AS trza
FROM adresler AS d
ORDER BY Ad) AS Trz ON Beab.trza = Trz.trza
 
Arkadaşlar

aslında geç açılmanın nedeni kodlar değil,
sorguda sıralama yaptırmak geç açtırıyor (85000 kayıt için diyorum)

sıralamayı kaldırınca beab05 ve taruz'un kodları her ikiside normal açılıyor.

yurdakulun kodlarıda ayrıca çok işime yaradı bu kodlarda kişi bazındaki kayıtları veriyor.

hepinize teşekkür ederim.
 
Geri
Üst