как минусить отрицательные значения в сумме? - PullRequest
3 голосов
/ 25 октября 2011

Я использую функцию 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 ]

9 голосов
/ 25 октября 2011

Чтобы вычесть отрицательные числа, а не сложить их, вы должны использовать 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
5 голосов
/ 25 октября 2011

SELECT SUM(ABS(Column_Name)) FROM Table_Name;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...