Sqlite3 Tek Sorguda 2 Count Nasıl Kullanılır

1 2 3 4
28/10/2022, 07:45

footprinting

hocam örnek olarak

XXXXXXX1 verisi 2020-05-01 tarihinde 2 adet var ama 14 gösteriyor.

scadaSayi sütununda 1 değeri görmem lazım
scadaSayi2 sütununda 1 değeri görmem lazım

XXXXXXX2 verisi 2020-05-02 tarihinde 1 adet var ama 14 gösteriyor.

scadaSayi sütununda 1 değeri görmem lazım
scadaSayi2 sütununda 0 değeri görmem lazım

SELECT scadaDate, scadaB1, scadaB3, COUNT(scadaB3) AS scadaSayi
FROM spectrumAcmalari WHERE scadaReasonForOpening LIKE "%SABIT%"
GROUP BY scadaDate, scadaB1, scadaB3

SELECT scadaDate, scadaB1, scadaB3, COUNT(scadaB3) AS scadaSayi2
FROM spectrumAcmalari WHERE scadaReasonForOpening = "NULL"
GROUP BY scadaDate, scadaB1, scadaB3

yukarıdaki iki sorguyu tek sorgu yapmaya çalışıyorum.
28/10/2022, 10:17

berduş

alanları karıştırmışsınız galiba
count için kullandığınız kriter alanınız scadaReasonForOpening , oysa XXXXXXX1 verisi galiba scadaB3 alanında
28/10/2022, 10:22

footprinting

(28/10/2022, 10:17)berduş yazdı: alanları karıştırmışsınız galiba
count için kullandığınız kriter alanınız scadaReasonForOpening , oysa XXXXXXX1 verisi galiba scadaB3 alanında

özür dilerim doğrudur

kriter alanı scadaReasonForOpening

group landırılan veri scadaB3
28/10/2022, 10:27

berduş

sorguyu aşağıdaki gibi düzenleyip dener misiniz?
aslında join kullanılabilirse o daha uygun olur gibi
SELECT a.scadaDate, a.scadaB1, scadaB3,
(SELECT COUNT(b.scadaB3) FROM spectrumAcmalari AS b WHERE b.scadaReasonForOpening LIKE '%SABIT%' and b.scadaB3=a.scadaB3) AS scadaSayi,
(SELECT COUNT(b.scadaB3) FROM spectrumAcmalari AS b WHERE b.scadaReasonForOpening = 'NULL' and b.scadaB3=a.scadaB3) AS scadaSayi2
FROM spectrumAcmalari AS a
GROUP BY a.scadaDate, a.scadaB1, scadaB3;

(28/10/2022, 07:45)footprinting yazdı: XXXXXXX1 verisi 2020-05-01 tarihinde 2 adet var
hangi alanda bu ben sadece 1 tane gördüm?
28/10/2022, 10:40

footprinting

(28/10/2022, 10:27)berduş yazdı: sorguyu aşağıdaki gibi düzenleyip dener misiniz?
aslında join kullanılabilirse o daha uygun olur gibi
SELECT a.scadaDate, a.scadaB1, scadaB3,
(SELECT COUNT(b.scadaB3) FROM spectrumAcmalari AS b WHERE b.scadaReasonForOpening LIKE '%SABIT%' and b.scadaB3=a.scadaB3) AS scadaSayi,
(SELECT COUNT(b.scadaB3) FROM spectrumAcmalari AS b WHERE b.scadaReasonForOpening = 'NULL' and b.scadaB3=a.scadaB3) AS scadaSayi2
FROM spectrumAcmalari AS a
GROUP BY a.scadaDate, a.scadaB1, scadaB3;

(28/10/2022, 07:45)footprinting yazdı: XXXXXXX1 verisi 2020-05-01 tarihinde 2 adet var
hangi alanda bu ben sadece 1 tane gördüm?

scadaB3 alnında XXXXXXX1 2 adet var

scadaReasonForOpening bu alana uyguladığımız koşuldan dolayı SABIT e 1 - NULL da 1 görünmeli.

yukarıdaki sorguyu denedim sqlite yanıtvermiyor.
28/10/2022, 10:52

berduş

gifte görüleceği gibi bende çalıştı
1 2 3 4