select A.pro_id, sum(B.pro_amount * B.pro_price)/(case when sum(B.pro_amount+d.pro_stoamount)=0 then 0.0000001 else sum(B.pro_amount+d.pro_stoamount) end) as sums from ......
sum(B.pro_amount+d.pro_stoamount)为零或为空时,都能被除
除0你想得到什么结果? DECLARE @I INT SELECT @I=0 SELECT CASE WHEN @I=0 THEN 你要的结果 ELSE 2/@I END
select A.pro_id, sum(B.pro_amount * B.pro_price)/(case when isnull(sum(B.pro_amount+d.pro_stoamount),0)=0 then 0.0000001 else sum(B.pro_amount+d.pro_stoamount) end) as sums from ......
----加个isnull函数,或者将=0改成:in (0,null)
我一般是这么处理的(case isnull(a,0) when 0 then 0 esle b/a end )
sum(B.pro_amount * B.pro_price)/(case when sum(B.pro_amount+d.pro_stoamount)=0 then 0.0000001 else sum(B.pro_amount+d.pro_stoamount) end) as sums
from ......
DECLARE @I INT
SELECT @I=0
SELECT CASE WHEN @I=0 THEN 你要的结果 ELSE 2/@I END
-------------------
谢谢
luoyoumou
为零或为空时,都能被除应该如何写
为NULL 你要怎么处理 转化为多少》还有被除数为0本来就可以除。。
那除数这种情况怎么处理呢?
都没说清楚
sum(B.pro_amount * B.pro_price)/(case when isnull(sum(B.pro_amount+d.pro_stoamount),0)=0 then 0.0000001 else sum(B.pro_amount+d.pro_stoamount) end) as sums
from ......
----加个isnull函数,或者将=0改成:in (0,null)