Yorumları: 645
Konuları: 85
Kayıt Tarihi: 04-10-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 10
- Delphi XE Serisi
Rep Puanı: 2.772
Uzman
(13-01-2018, Saat: 21:47)mad85 Adlı Kullanıcıdan Alıntı: (13-01-2018, Saat: 18:09)Cyber Adlı Kullanıcıdan Alıntı: Hocam vakit ayırıp cevap verdiğiniz için teşekkürler.
Firmanın kullandığı muhasebe uygulamasından rapor alıyorum. Rapor süresini ve yapısını tekrardan yapılandırmaya çalışıyorum. Birden fazla Query kullanarak aldığım sonuçları tek satırda gösterebilmem için yukarıda ifade ettiğim gibi Case When kısmında Distinct kullanmaya çalışıyorum.
Tablonun yapısı aşağıdaki gibi.

count(distinct (case when DURUM=1 then ISLEM_ID end)) as "İŞLEM SAYISI"
buradaki yapıya benzer bir yapı ile ISLEM_ID si benzersiz olan kayıtların TOPLAM_TUTAR alanlarını hesaplamak mümkün mü?
Merhaba,
Şu şekilde mi ?
SELECT ISLEM_ID, SUM(TUTAR) AS TUTAR FROM XYZ GROUP BY ISLEM_ID
(12-01-2018, Saat: 14:20)Cyber Adlı Kullanıcıdan Alıntı:
Select
COUNT(DISTINCT ISLEM_ID) AS "HAREKET SAYISI",
SUM(COALESCE(T_TUTAR, 0)) AS "TOPLAM BAKİYE",
SUM(CASE WHEN durum<>0 THEN COALESCE(TUTAR, 0) ELSE 0.0 END) AS "KALAN",
SUM(CASE WHEN durum=0 THEN COALESCE(TUTAR, 0) ELSE 0.0 END) AS "ÖDENEN"
FROM KASA
Where TARIH between '2017-01-01' and '2017-01-15'
Merhaba,
Yukarıdaki sorgu cümlesinde CASE kullandığım alanlarda şarta DISTINCT kullanılabiliyor mu?
durum=0 veya durum<>0 kullandığım yere DISTICT(ISLEM_ID) gibi bir ifade kullanmak istiyorum. :ss
Bu sorunuza gelince;
Amacınız tam olarak nedir ?
Benzer bir ifadeyi "Group By" kullanımı sonrası "Having" ile sağlayabilirsiniz.
SELECT ISLEM_ID, SUM(TUTAR) AS TUTAR FROM XYZ
GROUP BY ISLEM_ID
HAVING SUM(TUTAR) > 500
ya da;
SELECT ISLEM_ID, SUM(TUTAR) AS TUTAR FROM XYZ
GROUP BY ISLEM_ID
HAVING COUNT(ISLEM_ID) > 0
Arkadaşında bahsettiği gibi having işinizi görecektir
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..