在我收到错误时请帮助我:
遇到零误差。
警告:聚合或其他SET操作消除了空值。
以下是代码: -
(CAST(SUM(ISNULL(Cur.CurAmount,0)) AS FLOAT) -
CAST(SUM(ISNULL(GLActualAmount,0)) AS FLOAT)) /
CAST(SUM(ISNULL(GLActualAmount,0)) AS FLOAT) * 100 GROWTH_AMT
答案 0 :(得分:1)
在这种情况下我使用NULLIF()
:
(CAST(SUM(ISNULL(Cur.CurAmount,0)) AS FLOAT) -
CAST(SUM(ISNULL(GLActualAmount,0)) AS FLOAT)
) /
NULLIF(CAST(SUM(ISNULL(GLActualAmount,0)) AS FLOAT) * 100, 0) as GROWTH_AMT
答案 1 :(得分:1)
除以零总是会出错。我会在查询结尾添加WHERE ISNULL(GLActualAmount,0) <> 0)
,因为如果GLActualAmount为零,则结果毫无意义。