none
Sql SUM Null Değerlere 0 Getirme RRS feed

  • Soru

  • Merhabalar İki ayrı Tablom var tb_GelirGiderlerden girilen verinin gelir=1  ,Gider=0  olarak ayırıyorum ve toplamını alıyorum ...Başka bir tablodan çekilen gelir-gider tiplerinin  sorgu sonucunda hiç işlem olmasa bile görünmesi geirekiy ki geliyorda fakat işlem olmadığı için  sonuç değerleri  NULL  geliyor  bu null değeri   0 olarak düzenlemem gerek nasıl yapabilirim...Teşekkürler..



    Sorgu...

    SELECT        TipAdi,
                                 (SELECT        SUM(Tutar) AS Expr1
                                   FROM            dbo.tb_GelirGider
                                   WHERE        (TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 1)) AS GelirTutari,
                                 (SELECT        SUM(Tutar) AS Expr1
                                   FROM            dbo.tb_GelirGider AS tb_GelirGider_1
                                   WHERE        (TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 0)) AS GiderTutari
    FROM            dbo.tb_TipTuru

    sorgu sonucu 
     

                                     Gelir                  Gider

    Bilgisayar Masrafı 54555.00         1200.00
    Telefon Masrafı1 11111.00  4655.00
    Dükkan Kirası1           NULL  NULL
    Bilgisayar Masrafı     NULL NULL

    10 Temmuz 2014 Perşembe 05:58

Yanıtlar

  • Subquery'yi komple ISNULL içine alarak dener misin

    SELECT        TipAdi,
                                 ISNULL((SELECT        SUM(Tutar) AS Expr1
                                   FROM            dbo.tb_GelirGider
                                   WHERE        (TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 1)),0) AS GelirTutari,
                                 ISNULL((SELECT        SUM(Tutar) AS Expr1
                                   FROM            dbo.tb_GelirGider AS tb_GelirGider_1
                                   WHERE        (TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 0)),0) AS GiderTutari
    FROM            dbo.tb_TipTuru

    Kolay gelsin

    10 Temmuz 2014 Perşembe 06:23

Tüm Yanıtlar

  • Subquery'yi komple ISNULL içine alarak dener misin

    SELECT        TipAdi,
                                 ISNULL((SELECT        SUM(Tutar) AS Expr1
                                   FROM            dbo.tb_GelirGider
                                   WHERE        (TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 1)),0) AS GelirTutari,
                                 ISNULL((SELECT        SUM(Tutar) AS Expr1
                                   FROM            dbo.tb_GelirGider AS tb_GelirGider_1
                                   WHERE        (TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 0)),0) AS GiderTutari
    FROM            dbo.tb_TipTuru

    Kolay gelsin

    10 Temmuz 2014 Perşembe 06:23
  • COALESCE(kolonAdi,'0')
    
    SELECT
    TipAdi,
    
    COALESCE((SELECT SUM(Tutar) AS Expr1 FROM       dbo.tb_GelirGider WHERE(TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 1)) AS GelirTutari,0),
    
    COALESCE((SELECT SUM(Tutar) AS Expr1
    FROM dbo.tb_GelirGider AS tb_GelirGider_1
    WHERE (TipTuruID = dbo.tb_TipTuru.TipTuruID) AND (Gelir = 0)) AS GiderTutari,0)
    
    FROM dbo.tb_TipTuru



    Mail Gönder



    • Düzenleyen Soner KOYLU 10 Temmuz 2014 Perşembe 06:43
    10 Temmuz 2014 Perşembe 06:34
  • select TipAdi,isnull(sum(Case when Gelir=1 Then Tutar else 0 end),0) as Gelir,

    isnull(sum(Case when Gelir=0 Then Tutar else 0 end),0) as Gider

    From dbo.tb_GelirGider a

    right join dbo.tb_TipTuru b on a.TipTuruID = b.TipTuruID

    group by TipAdi,b.TipTuruID




    • Düzenleyen Azure.mbaykan 10 Temmuz 2014 Perşembe 08:08 ilave 3
    10 Temmuz 2014 Perşembe 08:03