Bildirimler
Hepsini Temizle

Sorguda Hata  

  RSS
Ayşe Keşfin
(@AyseKesfin)
Üye

Merhaba

Bir tablom var . Tablomda ad, Soyad, kimlik no gibi birkaç kolon daha var . 

select kimlik _no, count(kimlik _no) AS KayitSayisi from TABLOM group by kimlik _no having count(kimlik _no)>1 şeklinde bir sorgum  var . 

Yanlışlıkla veya başka bir sebeple aynı kişi için birden fazla girilen kayıtlar var. Bu sorguyla kendisi için birden fazla kayıt girilen kişileri listelemek istiyorum . Sorunum, bu sorguyla sadece kimlik no getirebiliyorum . Aynı sorguda kişinin ad ve soyadını da getirmek istediğimde group by kullanımından dolayı hata alıyorum. Sorgumu nasıl değiştirebilirim?

Alıntı
Gönderildi : 16/08/2016 01:11
Emre Öğreten
(@EmreOgreten)
Üye

Merhaba,

 

Select e ekleyeceğin alanları , groupby a da ekler isen hata almazsın.

Aşağıdaki gibi sorgulatabilirsin.

 

 

select kimlik _no,ad, soyad, count(*) AS KayitSayisi from TABLOM group by kimlik _no ,
ad,
soyad
having count(*)>1  

CevapAlıntı
Gönderildi : 16/08/2016 02:23
Ayşe Keşfin
(@AyseKesfin)
Üye

Bu şekilde denedim ama böyle yazınca doğru sonuç vermiyor

CevapAlıntı
Gönderildi : 16/08/2016 02:34
Emre Öğreten
(@EmreOgreten)
Üye

Merhaba ,

 

Sample data oluşturup test ettiğimde bana dogru sonuç gelmişti. Datanız bozuk olabilir. Aynı tc no ile farklı isim ve soy isme sahip kayıtlar gibi. 

Böyle bir durumu kontrol etmek için aşağıdaki gibi subquery ile kontrol edebilirsin. 

 

select distict kimlik_no , ad , soyad
from TABLOM
where kimlik_no in
(
select kimlik_no from TABLOM group by kimlik_no
having count(kimlik_no)>1
)

CevapAlıntı
Gönderildi : 16/08/2016 17:34
Ayşe Keşfin
(@AyseKesfin)
Üye

[quote user="Emre Öğreten"]

Merhaba ,

 

Sample data oluşturup test ettiğimde bana dogru sonuç gelmişti. Datanız bozuk olabilir. Aynı tc no ile farklı isim ve soy isme sahip kayıtlar gibi. 

Böyle bir durumu kontrol etmek için aşağıdaki gibi subquery ile kontrol edebilirsin. 

 

select distict kimlik_no , ad , soyad
from TABLOM
where kimlik_no in
(
select kimlik_no from TABLOM group by kimlik_no
having count(kimlik_no)>1
)

[/quote]

Uzun süredir giremiyordum . Subquery kullanmadım daha önce ama teşekkür ederim . 

CevapAlıntı
Gönderildi : 29/08/2016 14:57
Paylaş: