每个人 - 我可以使用你的帮助。SQL案例平均公式输出问题
我有一个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])
以下是字段和输出的示例。 **我无法发布图片,因为我需要更多的声望值:(**
您可以添加一个链接到图片,有人可以将其添加为你(但文字会更好)我猜一个数据类型(。所有?)的列是一个整数或一些描述,并且您正在使用对整数执行整数除法的RDBMS,例如SQL Server ......但是我只是猜测。你的数据类型是什么?你使用的是什么RDBMS?你能提供一个能证明你的问题的最小例子吗? – Ben 2015-02-05 21:11:08
是整数数学与十进制数学的问题。如果值是整数,则结果将被舍入。如果这些值是小数点开始,他们不会。例如:3/2 = 2而3/2.0 = 1.5我相信这与系统如何解释返回列的数据类型有关。由于所涉及的所有值都是整数,因此它假定整数返回(不是十进制) – xQbert 2015-02-05 21:11:45