我正在使用SUM()
功能。但是SUM()
将列中的负值相加。在列中,如果值为正,则应添加该值,对于负值,应减去而不添加为SUM()
20.00
20.00
20.00
20.00
-20.00
20.00
20.00
40.00
20.00
20.00
20.00
20.00
20.00
-20.00
-20.00
20.00
sum()应该返回220而不是440。 正在返回440。
答案 0 :(得分:9)
要减去负数而不是添加它们,您可以使用SUM(ABS(col))
但只是为了检查这是您实际需要的示例结果。
WITH YourTable(col) AS
(
SELECT 2 UNION ALL
SELECT -5
)
SELECT
SUM(ABS(col)) AS [SUM(ABS(col))],
SUM(col) AS [SUM(col)]
FROM YourTable
返回
SUM(ABS(col)) SUM(col)
------------- -----------
7 -3
答案 1 :(得分:5)
SELECT SUM(ABS(Column_Name)) FROM Table_Name;