Ich stehe vor der Situation, dass ich den aktuellen und vorherigen Bestellbetrag in einer einzigen Zeile mithilfe eines SELECT-Statements auswählen muss.
Bestelltabelle:
Kunden-ID
Bestell-ID
Bestelldatum
Bestellbetrag
Aktuelles SELECT-Statement:
SELECT o.OrderId, o.OrderDate, o.OrderAmount, po.OrderAmount
FROM Order o
LEFT JOIN (
SELECT TOP(1) so.OrderAmount
FROM Order so
WHERE so.CustomerId = o.CustomerId and so.OrderId <> o.OrderId
ORDER BY so.OrderDate DESC
) po
Das Problem ist, dass die "WHERE"-Klausel in der Unterabfrage nicht erlaubt ist. Gibt es eine andere Methode, um diese Informationen zu erhalten?
Das ist tatsächlich eine Vereinfachung eines komplexeren SELECT (für eine Ansicht), der Daten für Finanzberichte für den aktuellen und vorherigen Berichtszeitraum erfordert.