SQL案例平均公式输出问题

SQL Case average formula output issue

大家 - 我需要你的帮助。

我有一个 SQL,我正在检查一个列以查看是否有金额。如果没有,我希望它输出 NULL。如果是这样,我希望它计算平均值。我正在使用这个 case 语句,NULL 语句工作正常,但我的平均语句只吐出 1 或 0。我已经搜索和测试了几个小时,但没有运气。

CASE 
WHEN SUM(z.[SumTarget$]) = 0 THEN NULL
ELSE (1-(SUM(z.[SumBackorder])+SUM(z.[SumStockedOut]))/SUM(z.[CountofNo]))
END [SumAvPerc]

我已经检查了字符串中的每个字段,方法是注释掉第 3 行并使用它来确保公式中的数字是正确的,到目前为止一切都已检查完毕。

--ELSE SUM(z.[SumStockedOut])

这是字段和输出的示例。 **我不能post图片因为我需要更多声望点:( **

SQL服务器只对整数进行整数除法,所以你应该将你的值转换为非整数。

我经常使用 * 1.0 执行此操作,例如:

(CASE WHEN SUM(z.[SumTarget$]) <> 0 
      THEN (1-(SUM(z.[SumBackorder])+SUM(z.[SumStockedOut]))/SUM(1.0 * z.[CountofNo]))
 END) as [SumAvPerc]