116: Nur ein einziger Ausdruck kann in der Auswahlliste angegeben werden

Fehlermeldung:
Meldung 116, Ebene 16, Status 1, Zeile 2
Nur ein einziger Ausdruck kann in der Auswahlliste angegeben werden, wenn die Unterabfrage nicht mit EXISTS eingeleitet wird.

...

Ebene:
16.

Beschreibung:
Diese Fehlermeldung taucht auf, wenn eine Subquery mehr als einen Ausdruck in der SELECT Liste ausweist

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. Aus der SELECT Liste der Subquery müssen alle bis auf einen Ausdruck entfernt werden.

Versionen:
Alle Versionen von SQL Server.

Beispiele:
USE Northwind
SELECT t1.*
FROM dbo.Orders t1
WHERE t1.OrderDate =
(SELECT MAX(OrderDate), CustomerID
FROM dbo.Orders
WHERE t1.CustomerID = CustomerID
GROUP BY CustomerID)

Anmerkungen:
Im obigen Beispiel wird versucht, die Orderdaten zur letzten Bestellung für jeden zu selektieren. Die Korrelation der Subquery zum äußeren SELECT wird dabei über t1.CustomerID = CustomerID hergestellt. Da in der SELECT Liste der Subquery mehr als ein Ausdruck angegeben ist (MAX(OrderDate), CustomerID), wird der Fehler ausgelöst. Um aus dieser Abfrage das gewünschte Ergebnis zu erhalten, muß man die Abfrage folgendermaßen umformulieren:
USE Northwind
SELECT t1.*
FROM dbo.Orders t1
WHERE t1.OrderDate =
(SELECT MAX(OrderDate)
FROM dbo.Orders
WHERE t1.CustomerID = CustomerID)

Noch kein Feedback
Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht auf dieser Seite angezeigt.
(Zeilenumbrüche werden zu <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)