3 Stimmen

Wie subtrahiert man negative Werte in der Summe?

Ich verwende die SUM()-Funktion. Aber SUM() summiert den negativen Wert in der Spalte. In einer Spalte sollte der positive Wert addiert und der negative Wert subtrahiert werden und nicht wie bei SUM() einfach addiert werden.

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() sollte 220 zurückgeben und nicht 440. Gibt jedoch 440 zurück.

1 Stimmen

Wenn Sie 1,2,-2 als Zeilen in einer Spalte haben und Summe dafür aufrufen, wäre das Ergebnis 1. Ist dies nicht das Verhalten, das Sie erhalten?

1 Stimmen

Wenn Sie einen negativen Wert zu einem positiven Wert hinzufügen, handelt es sich tatsächlich um eine Subtraktion. 3 + (-5) = 3 -5 = -2

0 Stimmen

Bitte fügen Sie einige Beispiele hinzu (bearbeiten Sie Ihre Frage): Welche Daten haben Sie, was macht SUM() damit, was möchten Sie erhalten?

11voto

Martin Smith Punkte 417623

Um negative Zahlen zu subtrahieren anstatt sie zu addieren, würden Sie SUM(ABS(col)) verwenden, aber nur um zu überprüfen, ob dies das ist, was Sie tatsächlich brauchen, finden Sie nachstehend ein Beispiel für die Ergebnisse.

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

Gibt zurück

SUM(ABS(col)) SUM(col)
------------- -----------
7             -3

8voto

vchitta Punkte 1973

SELECT SUM(ABS(Spaltenname)) FROM Tabellenname;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X