请教一个在sql语句中不做判断做除法保证不会出错的方法

gesnpt 2004-08-06 02:10:28
请问以下这个语句有没有什么替换的方法能提高效率呢??

case when (a.Salecount1+a.Salecount2+a.Salecount3+a.Salecount4)<>0
then convert(decimal(9,2),
sum(b.Salecount1+b.Salecount2+b.Salecount3+b.Salecount4)
/sum(a.Salecount1+a.Salecount2+a.Salecount3+a.Salecount4))
else 0
end as Salecount
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gesnpt 2004-08-06
  • 打赏
  • 举报
回复
对,是我忘了加一个sum,我只是想知道有没有什么替代的方法,因为我大概要做50多个这样的操作,感觉好像很慢
victorycyz 2004-08-06
  • 打赏
  • 举报
回复

把你的SQL语句贴完整。除0判断是没错,我是感觉你的语句有语法错误。
zjcxc 元老 2004-08-06
  • 打赏
  • 举报
回复
--不做判断不行,不过,应该是对sum结果做判断吧? 否则是不准确的

case when sum(a.Salecount1+a.Salecount2+a.Salecount3+a.Salecount4)<>0
then convert(decimal(9,2),
sum(b.Salecount1+b.Salecount2+b.Salecount3+b.Salecount4)
/sum(a.Salecount1+a.Salecount2+a.Salecount3+a.Salecount4))
else 0
end as Salecount
haoK 2004-08-06
  • 打赏
  • 举报
回复
我一直都这么写,没想到好办法
关注
loverpyh 2004-08-06
  • 打赏
  • 举报
回复
case when (a.Salecount1+a.Salecount2+a.Salecount3+a.Salecount4)<>0
then convert(decimal(9,2),
sum(b.Salecount1+b.Salecount2+b.Salecount3+b.Salecount4)
/sum(a.Salecount1+a.Salecount2+a.Salecount3+a.Salecount4))
else 0
end as Salecount
这样写效率很低吗

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧