如何减去总和的负值?

时间:2011-10-25 10:37:28

标签: sql sql-server sql-server-2005

我正在使用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。

2 个答案:

答案 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;