8127: Die "%1!.%2!"-Spalte ist in der ORDER BY-Klausel ungültig
Fehlermeldung:
Meldung 8127, Ebene 16, Status 1, Zeile 1
Die "%1!.%2!"-Spalte ist in der ORDER BY-Klausel ungültig, da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung taucht auf, wenn ein SQL Statement ausgeführt soll, welches in der ORDER BY Klausel versucht ach einer Spalte zu sortieren, die weder in einer Aggregatfunktion noch in der GROUP BY Klausel vorhanden 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 SQL Statement muß korrigiert werden.
Versionen:
Alle Versionen von SQL Server.
Beispiel(e):
USE Northwind
GO
SELECT CustomerID, COUNT(*)
FROM dbo.Orders
GROUP BY CustomerID
ORDER BY OrderDate
Anmerkungen:
Im obigen Beispiel wird der Fehler dadurch ausgelöst, daß im SQL Statement nach der Spalte OrderDate sortiert werden soll. OrderDate ist aber weder in der GROUP BY Klausel angegeben, noch wird eine Aggregatfunktion für OrderDate verwendet. Dies löst dann den Fehler aus. Den Fehler kann man beheben, indem man entweder OrderDate in die GROUP BY Klausel aufnimmt:
SELECT CustomerID, COUNT(*)
FROM dbo.Orders
GROUP BY CustomerID, OrderDate
ORDER BY OrderDate
oder OrderDate in eine Aggregatfunktion aufnimmt:
SELECT CustomerID, COUNT(*)
FROM dbo.Orders
GROUP BY CustomerID
ORDER BY MAX(OrderDate)
Wobei man aber genauestens überprüfen sollte, ob das SQL Statement nun, da es syntaktisch fehlerfrei ist, auch noch ein logisch korrektes Ergebnis liefert.