Ich habe folgende Datenbankstruktur:Nach virtueller Spalte filtern?
[Order]
OrderId
Total
[Payment]
OrderId
Amount
jeder Bestellung X Zahlung Reihen haben. Ich möchte nur die Liste der Bestellungen erhalten, in der die Summe aller Zahlungen < als die Bestellung Total ist.
Ich habe die folgende SQL, aber ich werde alle Bestellungen bezahlt und unbezahlt zurückgeben.
SELECT o.OrderId,
o.UserId,
o.Total,
o.DateCreated,
COALESCE(SUM(p.Amount),0) AS Paid
FROM [Order] o
LEFT JOIN Payment p ON p.OrderId = o.OrderId
GROUP BY o.OrderId, o.Total, o.UserId, o.DateCreated
Ich habe versucht, hinzuzufügen Wo (Paid < o.Total), aber es funktioniert nicht, eine Idee? BTM Ich benutze SQL CE 3.5
Sie können eine Spalte Alias in der HAVING-Klausel verweisen, statt –
Wenn ich (Paid
Marc
user329957: Können Sie die gesamte Abfrage einfügen? Die Fehlermeldung ist vage. Außerdem enthält der Link, den ich in meiner Antwort angegeben habe, eine Beispiel-SQL, die Sie sich ansehen können. – Jay