0

除数= 0の場合、除算を使用しない方法があるかどうか疑問に思っています。この場合、0で除算する必要がある場合を除いて、クエリは正常に機能しています。除数が0.可能ですか?これは SQl 2005 にあります。

ありがとう!

Select sum(cast(isnull(S.AmountSold, 0) as numeric(10,2))) As DeliveryTotal,
sum(cast(isnull(S.S_AmountCollected, 0) as numeric(10,2))) as DeliveryTotalCollected
(sum(cast(isnull(S.S_AmountCollected, 0) as numeric(10,2))) / sum(cast(isnull(S.AmountSold, 0) as numeric(10,2))) )*100 as DeliveryTotalPercentageCollected

from Info RD
4

2 に答える 2

2

を使用case whenし、おそらくサブクエリを使用して、読みやすくします...

select DeliveryTotal, DeliveryTotalCollected, 
 case 
   when DeliveryTotalCollected = 0 --if divisor = 0
   then 0 --return 0
   else (DeliveryTotal / DeliveryTotalCollected) * 100 --return division * 100
 end as DeliveryTotalPercentageCollected
from
(Select 
 sum(cast(isnull(S.AmountSold, 0) as numeric(10,2))) As DeliveryTotal,
 sum(cast(isnull(S.S_AmountCollected, 0) as numeric(10,2))) as DeliveryTotalCollected
 from Info RD) as subq
于 2012-10-18T16:39:08.273 に答える
-1

CASE式を調べます。

http://msdn.microsoft.com/en-us/library/ms181765.aspx

それはあなたが2つのケースの間で決定することを可能にします

于 2012-10-18T16:37:18.193 に答える