8121: Die '%1!.%2!'-Spalte ist in der HAVING-Klausel ungültig, da sie nicht in einer Aggregat

By Frank Kalis

Posted on Mär 19, 2011 von in 8000-8999

Fehlermeldung:
Meldung 8121, Ebene 16, Status 1, Zeile 1
Die '%1!.%2!'-Spalte ist in der HAVING-Klausel ungültig, da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist.

Ebene:
16.

Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht eine Spalte in der HAVING Klausel aufzuführen, die nicht in einer Aggregatfunktion und nicht in der GROUP BY Klausel enthalten ist.

Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.

Behebung:
Fehler der Ebene 16 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 Spalte muss entweder in einer Aggregatfunktion enthalten sein oder in der GROUP BY Klausel.

Versionen:
Alle Versionen von SQL Server.

Beispiele:
SELECT o.CustomerID, SUM(od.Quantity * (1 - od.Discount) * od.UnitPrice) AS Amount
  FROM Northwind.dbo.Orders o
  JOIN Northwind.dbo.[Order Details] od
    ON o.OrderID = od.OrderID
HAVING o.CustomerID = 'LAZYK'

Anmerkungen:
Im obigen Beispiel wird versucht die Spalte o.CustomerID in der HAVING Klausel auszuweisen. Da diese weder in einer Aggregatfunktion enthalten ist, noch in einer GROUP BY Klausel vorkommt, wird der Fehler ausgelöst.

Dieser Eintrag wurde eingetragen von und ist abgelegt unter 8000-8999.

Noch kein Feedback


Formular wird geladen...