日期:2014-05-18  浏览次数:20466 次

遇到以零作除数错误
原语句是这样的:
SQL code

sum(case when day(OQCTime)=1 then BadNo else 0 end)/sum(case when day(OQCTime)=1 then floor(TestNo) else 0 end)*1000000 as [1],


提示错误:遇到以零作除数错误



后来改成:
SQL code

sum(case when day(OQCTime)=1 then BadNo else 0 end)/nullif(sum(case when day(OQCTime)=1 then isnull(floor(TestNo),0) else 0 end)*1000000,0) as [1],


错误提示:将 expression 转换为数据类型 int 时出现算术溢出错误。

------解决方案--------------------
探讨
引用:
如果分母为0
那结果怎么处理?
做0处理