以下t-sql中的正确方法是什么? :
sum(rounded(fractions,2))
或round(sum(of fractions),2)
ta!
我已经尝试了两种方法,并且我的总数仍然以不同的结果为每个不知道我是否需要截断somwhere
我想要x,y * @v = z 所以sum(x)* @v = sum(z)
谢谢
答案 0 :(得分:4)
round(sum(of fractions),2)
是最准确的,因为你只是在最后一次四舍五入。 另一方面,你在求和之前首先对每个单独的值进行四舍五入,这样最终结果可能不太准确。
编辑:非常基本的例子:
DECLARE @Data TABLE (Val DECIMAL(9,2))
INSERT @Data VALUES (1.15)
INSERT @Data VALUES (1.15)
INSERT @Data VALUES (1.15)
SELECT ROUND(SUM(Val), 1) As Sum1, SUM(ROUND(Val, 1)) AS Sum2
FROM @Data
给出Sum1 = 3.50和Sum2 = 3.60。 1.15 + 1.15 + 1.15 = 3.45(真实总数)。因此,Sum1显然更准确