none
Gruplama Toplama RRS feed

  • Soru

  • Arkadaşlar selam

    HarereketTarihi, FirmaKodu, GirişÇıkış, Miktar, Fiyat, HareketTutarı başlıklarını içeren bir sql tablom mevcut. Bu tabloya yapacağım bir sorgu ile şu şekilde bir sonuç almam gerekiyor.  FirmaKodu,GirişMiktarTolamı,ÇıkışMiktarToplamı,BakiyeMiktarToplamı,BorçTutarı,AlacakTutarı,Bakiye burada borç, alacak veya giriş, çıkış durumunu GirişÇıkış kolonunun değeri 1 (bir) ise giriş, 2 (iki) ise çıkış olması koşulundan elde edilecektir.

    8 Eylül 2014 Pazartesi 13:34

Yanıtlar

  • Burada SQL'de toplama islemi nasil yapilir anlatiyor, bir goz at.

    SELECT FirmaKodu,
      SUM(CASE WHEN GirişÇıkış = 1 THEN Miktar ELSE 0 end) AS GirisMiktarToplami,
      SUM(CASE WHEN GirişÇıkış = 2 THEN Miktar ELSE 0 end) AS CikisMiktarToplami,
      SUM((CASE WHEN GirişÇıkış = 1 THEN 1 ELSE -1 end) * Miktar) AS BakiyeMiktarToplami,
      SUM(CASE WHEN GirişÇıkış = 1 THEN HareketTutarı ELSE 0 end) AS BorcTutari,
      SUM(CASE WHEN GirişÇıkış = 2 THEN HareketTutarı ELSE 0 end) AS AlacakTutari,
      SUM((CASE WHEN GirişÇıkış = 1 THEN 1 ELSE -1 end) * HareketTutarı) AS Bakiye
      FROM [TabloAdi]
      GROUP BY [FirmaKodu]

     
    • Yanıt Olarak Öneren Ortaç Demirel 10 Eylül 2014 Çarşamba 07:22
    • Yanıt Olarak İşaretleyen Serkan Canseven 10 Eylül 2014 Çarşamba 11:46
    8 Eylül 2014 Pazartesi 14:08

Tüm Yanıtlar

  • Burada SQL'de toplama islemi nasil yapilir anlatiyor, bir goz at.

    SELECT FirmaKodu,
      SUM(CASE WHEN GirişÇıkış = 1 THEN Miktar ELSE 0 end) AS GirisMiktarToplami,
      SUM(CASE WHEN GirişÇıkış = 2 THEN Miktar ELSE 0 end) AS CikisMiktarToplami,
      SUM((CASE WHEN GirişÇıkış = 1 THEN 1 ELSE -1 end) * Miktar) AS BakiyeMiktarToplami,
      SUM(CASE WHEN GirişÇıkış = 1 THEN HareketTutarı ELSE 0 end) AS BorcTutari,
      SUM(CASE WHEN GirişÇıkış = 2 THEN HareketTutarı ELSE 0 end) AS AlacakTutari,
      SUM((CASE WHEN GirişÇıkış = 1 THEN 1 ELSE -1 end) * HareketTutarı) AS Bakiye
      FROM [TabloAdi]
      GROUP BY [FirmaKodu]

     
    • Yanıt Olarak Öneren Ortaç Demirel 10 Eylül 2014 Çarşamba 07:22
    • Yanıt Olarak İşaretleyen Serkan Canseven 10 Eylül 2014 Çarşamba 11:46
    8 Eylül 2014 Pazartesi 14:08
  • Çetin Hocam alakanız için teşekkür ederim. cevabınız işime yaradı ancak bakiye kolonlarının hesaplama mantığını anlayamadım rica etsem açıklaya bilirmisiniz.
    9 Eylül 2014 Salı 05:50
  • Cok acik degil mi? Giris ise 1 degil ise -1 ile carpip sonucu topluyor.

    9 Eylül 2014 Salı 12:26
  • Sorgumuz aşağıdaki gibi. Biz Sorgu sonucu oluşan Sipariş Bakiyesi , İrsaliye Bakiyesi ve Ana Döviz Bakiyelerini ayrı bir sütunda toplatmak istiyoruz. Yardımcı olursanız sevinirim.

    SELECT TOP 100 PERCENT
    cari_RECno AS [msg_S_0088] /* KAYIT NO */ ,
    cari_kod AS [msg_S_1032] /* CARI KODU */ ,
    cari_unvan1 AS [msg_S_1033] /* CARI ÜNVANI */ ,
    cari_unvan2 AS [msg_S_1034] /* CARI ÜNVANI 2 */ ,
    (select  msg_S_0111 FROM  dbo.fn_CariRiskFoyu(0,CARI_HESAPLAR.cari_kod,getdate(),getdate(),getdate(),0,'',0) WHERE msg_S_0077='Sipariş Bakiyesi') as [Sip_Bakiye],
    (select  msg_S_0111 FROM  dbo.fn_CariRiskFoyu(0,CARI_HESAPLAR.cari_kod,getdate(),getdate(),getdate(),0,'',0) WHERE msg_S_0077='Faturalaşmamış İrsaliye Bakiyesi') as [İrs_Bakiye],
    CASE
    WHEN Cari_F10da_detay = 1 Then dbo.fn_CariHesapAnaDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0)
    WHEN Cari_F10da_detay = 2 Then dbo.fn_CariHesapAlternatifDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0)
    WHEN Cari_F10da_detay = 3 Then dbo.fn_CariHesapOrjinalDovizBakiye('',0,cari_kod,'','',0,NULL,NULL,0)
    WHEN Cari_F10da_detay = 4 Then dbo.fn_CariHareketSayisi(0,cari_kod,'')
    END AS [msg_S_1530] /* BAKİYE / HAREKET SAYISI */ ,
    CariBaglantiIsim AS [msg_S_3171] /* BAĞLANTI TİPİ */ ,
    CariHareketIsim AS [msg_S_0888] /* HAREKET TİPİ */
    FROM dbo.CARI_HESAPLAR WITH (NOLOCK)
    LEFT OUTER JOIN dbo.vw_Cari_Hesap_Baglanti_Tip_Isimleri ON CariBaglantiNo=cari_baglanti_tipi
    LEFT OUTER JOIN dbo.vw_Cari_Hesap_Hareket_Tip_Isimleri ON CariHareketNo=cari_hareket_tipi
    LEFT OUTER JOIN dbo.vw_Gendata ON 1=1
    ORDER BY cari_kod

    15 Mart 2016 Salı 15:56
  • SELECT TOP 100 PERCENT
    cari_RECno AS [msg_S_0088] /* KAYIT NO */ ,
    cari_kod AS [msg_S_1032] /* CARI KODU */ ,
    cari_unvan1 AS [msg_S_1033] /* CARI ÜNVANI */ ,
    cari_unvan2 AS [msg_S_1034] /* CARI ÜNVANI 2 */ ,
    ISNULL((select  msg_S_0111 FROM  dbo.fn_CariRiskFoyu(0,CARI_HESAPLAR.cari_kod,getdate(),getdate(),getdate(),0,'',0) WHERE msg_S_0077='Sipariş Bakiyesi'),0)+
    ISNULL((select  msg_S_0111 FROM  dbo.fn_CariRiskFoyu(0,CARI_HESAPLAR.cari_kod,getdate(),getdate(),getdate(),0,'',0) WHERE msg_S_0077='Faturalaşmamış İrsaliye Bakiyesi'),0)+
    (CASE WHEN Cari_F10da_detay = 1 Then dbo.fn_CariHesapAnaDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0) ELSE 0 END) AS Bakiye_Toplam,
    (select  msg_S_0111 FROM  dbo.fn_CariRiskFoyu(0,CARI_HESAPLAR.cari_kod,getdate(),getdate(),getdate(),0,'',0) WHERE msg_S_0077='Sipariş Bakiyesi') as [Sip_Bakiye],
    (select  msg_S_0111 FROM  dbo.fn_CariRiskFoyu(0,CARI_HESAPLAR.cari_kod,getdate(),getdate(),getdate(),0,'',0) WHERE msg_S_0077='Faturalaşmamış İrsaliye Bakiyesi') as [İrs_Bakiye],
    CASE
    WHEN Cari_F10da_detay = 1 Then dbo.fn_CariHesapAnaDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0)
    WHEN Cari_F10da_detay = 2 Then dbo.fn_CariHesapAlternatifDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0)
    WHEN Cari_F10da_detay = 3 Then dbo.fn_CariHesapOrjinalDovizBakiye('',0,cari_kod,'','',0,NULL,NULL,0)
    WHEN Cari_F10da_detay = 4 Then dbo.fn_CariHareketSayisi(0,cari_kod,'')
    END AS [msg_S_1530] /* BAKİYE / HAREKET SAYISI */ ,
    CariBaglantiIsim AS [msg_S_3171] /* BAĞLANTI TİPİ */ ,
    CariHareketIsim AS [msg_S_0888] /* HAREKET TİPİ */
    FROM dbo.CARI_HESAPLAR WITH (NOLOCK)
    LEFT OUTER JOIN dbo.vw_Cari_Hesap_Baglanti_Tip_Isimleri ON CariBaglantiNo=cari_baglanti_tipi
    LEFT OUTER JOIN dbo.vw_Cari_Hesap_Hareket_Tip_Isimleri ON CariHareketNo=cari_hareket_tipi
    LEFT OUTER JOIN dbo.vw_Gendata ON 1=1
    ORDER BY cari_kod

    15 Mart 2016 Salı 18:02