bir satır üzerinde aylık (ay-ay) toplam aldırma

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

bir satır üzerinde aylık (ay-ay) toplam aldırma

Mesaj gönderen ademcicek »

Merhabalar,
Herkese kolay gelsin... aşağıdaki kodlarda mart ayına ait bir ilacın toplam satış miktarını hesaplıyor, Bunu diğer aylardaki miktarlarla birlikte aynı satırda gösterebilirmiyiz ?

select ILAC_ADI, SUM(SATIS_MIKTAR) AS MIKTAR FROM ILAC WHERE MONTH(SATIS_TARIH)=3 GROUP BY ILAC_ADI

Teşekkürler...
Kullanıcı avatarı
akgun83
Üye
Mesajlar: 106
Kayıt: 26 Eyl 2003 11:34

Mesaj gönderen akgun83 »

Merhabalar,
Aklıma ilk gelen join kullanarak bu işi halletmek, henüz denemedim ama aşağıdaki kod işinizi görebilir.

Kod: Tümünü seç

SELECT MAS.ILAC_ADI, SUM(OC.SATIS_MIKTAR) OCAK, SUM(SB.SATIS_MIKTAR) ŞUBAT, SUM(MR.SATIS_MIKTAR) MART, 
 SUM(NI.SATIS_MIKTAR) NİSAN, SUM(MY.SATIS_MIKTAR) MAYIS, SUM(HZ.SATIS_MIKTAR) HAZİRAN, 
 SUM(TM.SATIS_MIKTAR) TEMMUZ, SUM(AG.SATIS_MIKTAR) AĞUSTOS, SUM(EY.SATIS_MIKTAR) EYLÜL, 
 SUM(EK.SATIS_MIKTAR) EKİM, SUM(KS.SATIS_MIKTAR) KASIM, SUM(AR.SATIS_MIKTAR) ARALIK FROM ILAC MAS 
LEFT OUTER JOIN ILAC OC ON OC.ILAC_ADI = MAS.ILAC_ADI AND MONTH(OC.SATIS_TARIH)=1 
LEFT OUTER JOIN ILAC SB ON SB.ILAC_ADI = MAS.ILAC_ADI AND MONTH(SB.SATIS_TARIH)=2 
LEFT OUTER JOIN ILAC MR ON MR.ILAC_ADI = MAS.ILAC_ADI AND MONTH(MR.SATIS_TARIH)=3 
LEFT OUTER JOIN ILAC NI ON NI.ILAC_ADI = MAS.ILAC_ADI AND MONTH(NI.SATIS_TARIH)=4 
LEFT OUTER JOIN ILAC MY ON MY.ILAC_ADI = MAS.ILAC_ADI AND MONTH(MY.SATIS_TARIH)=5 
LEFT OUTER JOIN ILAC HZ ON HZ.ILAC_ADI = MAS.ILAC_ADI AND MONTH(HZ.SATIS_TARIH)=6 
LEFT OUTER JOIN ILAC TM ON TM.ILAC_ADI = MAS.ILAC_ADI AND MONTH(TM.SATIS_TARIH)=7 
LEFT OUTER JOIN ILAC AG ON AG.ILAC_ADI = MAS.ILAC_ADI AND MONTH(AG.SATIS_TARIH)=8 
LEFT OUTER JOIN ILAC EY ON EY.ILAC_ADI = MAS.ILAC_ADI AND MONTH(EY.SATIS_TARIH)=9 
LEFT OUTER JOIN ILAC EK ON EK.ILAC_ADI = MAS.ILAC_ADI AND MONTH(EK.SATIS_TARIH)=10 
LEFT OUTER JOIN ILAC KS ON KS.ILAC_ADI = MAS.ILAC_ADI AND MONTH(KS.SATIS_TARIH)=11 
LEFT OUTER JOIN ILAC AR ON AR.ILAC_ADI = MAS.ILAC_ADI AND MONTH(AR.SATIS_TARIH)=12 
GROUP BY MAS.ILAC_ADI 
ORDER BY MAS.ILAC_ADI 
Deneyip sonucu bildirirsiniz.
Kolay Gelsin
En son akgun83 tarafından 16 Nis 2004 11:07 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

merhaba.
çok teşekür ederim.
galiba yanlış anlatmışım orada.
oradaki aylar ayrı ayrı tablolar değil.hepsi bir tablo.
kolay gelsin..
Kullanıcı avatarı
akgun83
Üye
Mesajlar: 106
Kayıt: 26 Eyl 2003 11:34

Mesaj gönderen akgun83 »

zaten hepsini aynı tablodan çekiyor.
Siz bu SQL i bi deneyin.
Cevapla