Forum

Sorguda Hata
 
Bildirimler
Hepsini Temizle

Sorguda Hata

5 Yazılar
2 Üyeler
0 Likes
461 Görüntüleme
(@AyseKesfin)
Gönderiler: 20
Eminent Member
Konu başlatıcı
 

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?

 
Gönderildi : 16/08/2016 01:11

(@EmreOgreten)
Gönderiler: 13
Active Member
 

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  

 
Gönderildi : 16/08/2016 02:23

(@AyseKesfin)
Gönderiler: 20
Eminent Member
Konu başlatıcı
 

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

 
Gönderildi : 16/08/2016 02:34

(@EmreOgreten)
Gönderiler: 13
Active Member
 

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
)

 
Gönderildi : 16/08/2016 17:34

(@AyseKesfin)
Gönderiler: 20
Eminent Member
Konu başlatıcı
 

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
)

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

 
Gönderildi : 29/08/2016 14:57

Paylaş: