Ich versuche, von meinem Tisch alle Rechnungen für diejenigen Kunden, die mehr als 1000 über den Zeitraum der letzten 12 Monate ausgegeben erhoben. Unten ist mein Tisch nur für zwei Kunden als Beispiel:SQL - CASE WHEN Frage
Und meine Frage: INV
SELECT
t.Customer, t.Invoice
FROM
(SELECT
CI.Customer, CI.Invoice, CI.Date,
SUM(CASE
WHEN CI.Date > DATEADD(month, -12, getdate())
THEN CI.Valuee
ELSE 0
END) as Net
FROM
CustomerInvoice CI
GROUP BY
CI.Customer, CISRV.Invoice, CISRV.Date) AS t
GROUP BY
t.Customer, t.Invoice
HAVING
SUM (t.Net) > 1000
Als Ergebnis werde ich nur Rechnung INV-341453 bekommen, aber ich würde auch zeigen, wie Rechnungen -346218 und INV-349065.
Was mache ich falsch?
Dank Gordon Es funktioniert! Sehr gute Lösung und einfacher Code. Erfahren Sie mehr über OVER-Klausel .. – kikos87