Forum

Sql 0' Böl...
 
Bildirimler
Hepsini Temizle

Sql 0' Bölünme Hatası

3 Yazılar
1 Üyeler
0 Reactions
1,241 Görüntüleme
(@osmandirek)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Merhabalar

Bir Sorguda kullanmam gereken bir işlem var. bu işlemi düz mantık olarak ben yazdım. ama hesap edemediğim şöyle bir durum ortaya çıktı.

sqlden gelen değer 0 olunca bu işlem hata veriyor. sql sorugusunu ekliyorum

(SUM(ABS(Invoices.Loc_TaxBase) * (CASE WHEN Invoices.IsReturn = 1 THEN -1 ELSE 1 END))  /  

SUM(ISNULL(ItemBasePrice.CostPrice , SPACE(0)) * Invoices.Qty1 ))

 buradaki /'den sonraki kısım 0 olursa eğer bana NULL değer vermesini nasıl sağlayabilirim ? hata vermesin ama sonucu 0 olarak getirsin. Bunu nasıl yapabilirim? 

 
Gönderildi : 06/06/2015 14:18

(@osmandirek)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 
, Markup = case when ( SUM(ISNULL(ItemBasePrice.CostPrice , SPACE(0)) * Invoices.Qty1 )) = 0 then 0 else (SUM(ABS(Invoices.Loc_TaxBase) * (CASE WHEN Invoices.IsReturn = 1 THEN -1 ELSE 1 END)) / SUM(ISNULL(ItemBasePrice.CostPrice , SPACE(0)) * Invoices.Qty1 )) end
 
 
bu şekilde çözdüm yardımcı olabilir belki ihtiyacı olanlara. Ama şimdi başka bir formülde hata alıyorum 🙂
 
o formülüde ekliyorum .
burada da aynı sorun var  ama bu tek bir formül olunca çıkan değer 0 oluyor buna nasıl bir çözüm üretebiliriz. 
((SUM(ABS(Invoices.Loc_TaxBase) * (CASE WHEN Invoices.IsReturn = 1 THEN -1 ELSE 1 END)) - SUM(ISNULL(ItemBasePrice.CostPrice, SPACE(0)) * Invoices.Qty1 ) ) / SUM(ABS(Invoices.Loc_TaxBase) * (CASE WHEN Invoices.IsReturn = 1 THEN -1 ELSE 1 END)))* 100 
 
Gönderildi : 06/06/2015 16:41

(@osmandirek)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 
GrossProfit = case when SUM(ABS(Invoices.Loc_TaxBase) * (CASE WHEN Invoices.IsReturn = 1 THEN -1 ELSE 1 END)) = 0 then 0 else ((SUM(ABS(Invoices.Loc_TaxBase) * (CASE WHEN Invoices.IsReturn = 1 THEN -1 ELSE 1 END)) - SUM(ISNULL(ItemBasePrice.CostPrice, SPACE(0)) * Invoices.Qty1 ) ) / SUM(ABS(Invoices.Loc_TaxBase) * (CASE WHEN Invoices.IsReturn = 1 THEN -1 ELSE 1 END)))* 100 end
 
Gönderildi : 06/06/2015 18:00

Paylaş: