Kod: Tümünü seç
SELECT mkodu,
(CASE WHEN odemetipi = A THEN SUM(tutar)END) AS Atipinden,
(CASE WHEN odemetipi = B THEN SUM(tutar)END) AS Btipinden,
(CASE WHEN odemetipi = C THEN SUM(tutar)END) AS Ctipinden
FROM odeme
GROUP BY mkodu
case icindeki sum satir bazinda calistigindan toplamin degerini alamaz,
yani bir islevi yok gibime geliyor, boyle olunca group by da bir kayit icin her seferinde birden fazla kayit donecektir.
firebird için söyle birsey deneyelim;
Kod: Tümünü seç
select MKODU,
sum(case when ODEMETIPI = 'a' then TUTAR end),
sum(case when ODEMETIPI = 'b' then TUTAR end),
sum(case when ODEMETIPI = 'c' then TUTAR end)
from MUSTERI group by MKODU
Bu adreste oracle da case kullanimiyla ilgili örnekler var, orda disarda fonksiyon olarak count kullanmislar ve çalisiyor, bu sebeple burda bizim yazdigimiz sum da umarim çalisir.
forumda küçük I yazamiyorum ekrana 1 basiyor neden acaba?