SQL除数为零的时候怎么处理



这个SQL如果出现求和的sum(a.SaleArea)出现0的话,会直接报错 这个SQL该怎么处理,实现出现0的时候显示空或者其他的东西




SELECT sum(b.Amount)*10000/sum(a.SaleArea) as TargetCost
FROM (SELECT ProductID,sum(SaleArea) as SaleArea from dbo.Product_Sale group by ProductID) a
left join (select PeriodID,ProductID,Amount,CostCode,MAX(SaveDate) as SaveDate FROM dbo.Product_Cost
group by PeriodID,ProductID,Amount,CostCode) b on a.ProductID = b.ProductID
left join dbo.Relation_Period c on b.PeriodID = c.C_PeriodID
left join dbo.DIM_Period d on c.PeriodID = d.PeriodID
where  b.CostCode = 'A.09'
and a.ProductID IN ('${ProductID}')

FineReportLynn000 发布于 2016-11-9 16:02
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共9回答
最佳回答
0
瓦王的地狱咆哮发布于2016-11-9 16:02(编辑于 2023-9-6 09:34)
555
最佳回答
0
孤陌发布于2016-11-9 16:04(编辑于 2023-9-6 09:34)
555
最佳回答
0
瓦王的地狱咆哮发布于2016-11-9 16:07(编辑于 2023-9-6 09:34)
555
  • Lynn000 Lynn000(提问者)

    [attach]49170[/attach]
    这样写对么?为啥<>报错啊
    回复
    2016-11-09 16:28 
最佳回答
0
Atoz发布于2016-11-9 16:17(编辑于 2023-9-6 09:34)
555
最佳回答
0
Lynn000发布于2016-11-9 16:28(编辑于 2023-9-6 09:34)
555
最佳回答
0
瓦王的地狱咆哮发布于2016-11-9 16:29(编辑于 2023-9-6 09:34)
555
最佳回答
0
Lynn000发布于2016-11-9 16:32(编辑于 2023-9-6 09:34)
555
  • 瓦王的地狱咆哮 瓦王的地狱咆哮

    你case的是A.Amount when后只能用A.Amount比。
    应该写成
    select A.Amount,case  when A.Area!=0 then A.Amount*10000/A.Area
    else 0 end
    as TargetCost
    from A
    回复
    2016-11-09 16:02 
最佳回答
0
Lynn000发布于2016-11-9 16:49(编辑于 2023-9-6 09:34)
555
最佳回答
0
静听禅鸣发布于2016-11-10 11:09(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 590浏览人数
  • 最后回答于:2016-11-10 11:09
    活动推荐 更多
    热门课程 更多
    返回顶部