merhaba,
istatistik verileri için 3 tabloyu birleştirerek kayıtları saydırıyorum. tablomda durum stununa göre 'Başarılı' veya 'Başarısız' olarak süzerek toplam sayıları alıyorum.
2 farklı sorgu yaparak (biri başarılı durumu için diğeri de başarısız durumu için) sağlıklı sonuç alabiliyorum. Fakat arayüze aktarırken sorun yaşıyorum. 2 durumu da tek sorguda almam gerekiyor.
Tablolar
satis -> id, personel_id, durum, sil, bitis_tarihi, vs...
personel -> id, personel_grup_id, vs...
personel_grup -> id, grup_adi
Personel gruplarına göre başarılı ve başarısız satış sayılarını almaya çalışıyorum
kullandığım sorgu
SELECT Count(s.id) AS toplam, s.id, g.grup_adi
FROM satis AS s
INNER JOIN personel AS p
ON p.id = s.personel_id
INNER JOIN personel_grup AS g
ON g.id = p.personel_grup_id
WHERE DATE(s.bitis_tarihi) BETWEEN '$baslangic_tarihi' AND '$bitis_tarihi' AND s.durum = 'Başarılı' AND s.sil = '0' $gruplar
GROUP BY p.personel_grup_id
Aldığım sonuç
toplam| grup_adi |
5 | pendik |
4 | kartal |
Bu sorgu ile sadece tek durumdaki toplamı alabiliyorum.
UNION ALL ile yapmaya çalıştım o olmuyor. IF, CASE denemek istedim onları da daha önce kullanmadığımdam sorguyu çalıştıramadım bile.
Nasıl bir sorgu yaparsam tek seferde Başarılı ve Başarısız toplamları alabilirim?
MYSQL'de şöyle bir şey var mı acaba?(dönecek değeri koşula bağlı olarak belirlenen stuna yazmak gibi birşey)
if(durum == Başarılı){
Count(id) AS basarili
}else{
Count(id) AS basarisiz
}Almak istediğim çıktı:
basarili | basarisiz | grup_adi
5 | 4 | pendik
4 | 7 | kartal
İstediğimi ifade edebildim mi bilemiyorum, olabildiğince açık örnekli sormaya çalıştım