İşin İçinden Çıkamadığım Sql Sorgusu
-
merhaba üstadlar bir tablom var tabloda ID,KLNADI ve sonuc alanları ver örnek üstünden gidersek
1 A OLUMLU
2 A OLUMSUZ
3 B OLUMLU
4 C OLUMSUZ
Benim sorgu ile yapmak istediğim şey
KLNADI OLUMLUSONUC OLUMSUZSONUC
A 1 1
B 1 0
C 0 1
select KLNADI,(SELECT COUNT(SONUC) FROM DATAGECMIS WHERE SONUC='Olumlu' ) FROM DATAGECMIS GROUP BY KLNADI
bu şekilde denedim ama malesef olmuyor nasıl yapabilirim bu işi acaba
-
tek kayıttayken bu şekilde çözülebiliyor yani tek kullanıcı varken ama 2 kullanıcı olunca hep aynı sonuçları veriyor.
SELECT KLNADI,
(SELECT COUNT(SONUC) FROM datagecmis WHERE SONUC='Olumlu' and KLNADI = datagecmis.KLNADI) as Olumlular,
(SELECT COUNT(SONUC) FROM datagecmis WHERE SONUC='Olumsuz' and KLNADI = datagecmis.KLNADI) as Olumsuzlar
(SELECT COUNT(SONUC) FROM datagecmis WHERE KLNADI = datagecmis.KLNADI) as ToplamArama
FROM (SELECT DISTINCT KLNADI FROM datagecmis ) a ; -
tamam anlamadım ama
group by ve join
kullansan olmazmı?
-
wert bunu yazdı
tamam anladım ama
group by ve join
kullansan olmazmı?
nasıl birşey hocam örnek vereibilirmisin
-
Hocam sql im çok iyi değildir ama store procedure kullanabiliyorsan son çare olarak ona bakabilirsin. en azından workaround olur sonra döner tek sorgu halini yaparsın.
-
SELECT toplam.kisi, olumlu.olumlu_adet, olumsuz.olumsuz_adet, toplam.toplam_adet FROM (SELECT kisi,COUNT(*) as toplam_adet from tbt GROUP BY kisi) as toplam LEFT JOIN (SELECT kisi,COUNT(*) as olumlu_adet from tbt where sonuc=1 GROUP BY kisi) as olumlu on toplam.kisi=olumlu.kisi LEFT JOIN (SELECT kisi,COUNT(*) as olumsuz_adet from tbt where sonuc=0 GROUP BY kisi) as olumsuz on toplam.kisi=olumsuz.kisi
-
kolon isimlerini sana uygun düzenlersin
ben söyle anladım sistemi
-
wert bunu yazdı
kolon isimlerini sana uygun düzenlersin
ben söyle anladım sistemi
çok saolasın üstad teşekkür ederim