以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  sql查询中分母为0怎么办?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99730)

--  作者:happyft
--  发布时间:2017/4/25 18:39:00
--  sql查询中分母为0怎么办?
SE LECT 产品编码, sum(数量) as 数量,sum(数量)/(Se lect sum(数量) from 订单明细 a inner join 订单 b on a.订单编号 = b.订单编号 where XXX)
as 占比

当上面的语句分母为0时就会出错,现在想这样处理,如果分母为0就置分母为1,0/1也是0就没有关系,这样可以用case when一次就写出来吗?怎么写?
(先声名个变量查询出总数然后if判断那种不考虑)

谢谢!



--  作者:rjh4078
--  发布时间:2017/4/25 19:20:00
--  
SE LECT 产品编码, sum(数量) as 数量,
(case when 
(Se lect sum(数量) from 订单明细 a inner join 订单 b on a.订单编号 = b.订单编号 where XXX)=0 then
sum(数量)/1
 else sum(数量)/(Se lect sum(数量) from 订单明细 a inner join 订单 b on a.订单编号 = b.订单编号 where XXX) 
end )as 占比


--  作者:HappyFt
--  发布时间:2017/4/26 8:21:00
--  
谢谢老师!