Skip to main content

AccessTr.neT


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

footprinting
footprinting
SQL
18
1825

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

#7
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.
Son Düzenleme: 28/10/2022, 08:04, Düzenleyen: footprinting.
Cevapla
#8
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
Cevapla
#9
(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
Cevapla
#10
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?
Cevapla
#11
(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.
Cevapla
#12
gifte görüleceği gibi bende çalıştı
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task