Wie man die null aus allen negativen zahlen in einer Gruppe-von T-SQL-Anweisung
Habe ich eine T-SQL-Abfrage, wo ich will und alle negativen Mengen gelöscht werden.
SELECT
p.productnumber,
v.[Description],
SUM(i.Quantity) as quantity
FROM ...
LEFT JOIN ...
LEFT JOIN ...
LEFT JOIN ...
GROUP BY productnumber, [Description]
Grundsätzlich, wenn die Summe aus 5, 5, -1, das Ergebnis sollte sein 5+5+0=10, und nicht (5+5+(-1)=9.
Wie soll ich das tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man eine
CASE
AnweisungOder ein obskurer version
oder einfach nur ausschließen, diese Zeilen überhaupt in den
WHERE
- Klausel, wenn Sie nicht benötigt werden für keine anderen Zwecke.where i.Quantity > 0
genau herausfiltern, die Sie nicht wollen...
SUM(CASE WHEN i.Quantity < 0 THEN 0 ELSE i.Quantity END) as quantity
Ich weiß, dies wurde beantwortet vor langer Zeit, aber ich denkt, dass seine erwähnenswert, dass die null-Stock-Formel ist:
In der SQL-Server seine:
Dieser kommt in eine Menge von computing-Szenarien. Nicht sicher, ob es der effizienteste Weg, es zu tun in TSQL oder wenn Logik Aussagen wie
CASE
wäre schneller. Aber das funktioniert 100% der Zeit jedes mal.