147: In der WHERE-Klausel darf kein Aggregat auftreten
Fehlermeldung:
Meldung 147, Ebene 15, Status 1, Zeile 1
In der WHERE-Klausel darf kein Aggregat auftreten, es sei denn, es befindet sich in einer Unterabfrage, die in einer HAVING-Klausel oder einer Auswahlliste enthalten ist, und die Spalte, die aggregiert wird, ist ein äußerer Verweis.
Ebene:
15.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht, eine Aggregatsfunktion in einer WHERE Klausel aufzurufen.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 11 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Die WHERE Klausel muss modifiziert werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
SELECT *
FROM Northwind.dbo.Orders
WHERE MAX(OrderDate) < GETDATE()
Anmerkungen:
Im obigen Beispiel wird versucht die MAX() Aggregatsfunktion direkt in der WHERE Klausel zu verwenden. Dies löst den Fehler aus.