Subquery - Liefert mehr als eine Zeile

Webdesigner

Benutzer
Beiträge
10
Guten Tag,

wenn ich das SQL-Statement
Select * FROM (Select SUM((BIS_MINUTE/60+BIS_STUNDE)-(VON_MINUTE/60+VON_STUNDE)) as Std FROM Abhaltung p WHERE p.LVANR=320120 GROUP BY PERSNR) GROUP BY STD
absetzte, erhalte ich maximal einen Eintrag. Wenn ich nun dieses Statement als Subquery verwende, erhalte ich die Fehlermeldung:
ORA-01427: Unterabfrage für eine Zeile liefert mehr als eine Zeile
Statement:
Select (Select * FROM (Select SUM((BIS_MINUTE/60+BIS_STUNDE)-(VON_MINUTE/60+VON_STUNDE)) as Std FROM Abhaltung p WHERE p.LVANR=u.LVANR GROUP BY PERSNR) GROUP BY STD) FROM LVA u
Es kann ja nicht sein, dass dieses Subquery mehr als einen Eintrag zurückgibt, da ich ja nach STD gruppiere. Dies ist auch die einzige Spalte. Kann mir jemand erklären, woran das liegt?

t.gif
 
Werbung:
Wenn Du dazu mal ein nachvollziehbares Beispiel lieferst (also CREATE TABLE, paar Testdaten, was rauskommen soll), wäre Hilfe deutlich einfacher. Dein GROUP BY PERSNR erscheint mir aber an dieser Stelle schon mal schlich unsinnig, weil Du da, so wie es scheint, nach einer nicht (im Result) vorhandenen Spalte gruppierst. Kann man machen, ist aber unsinnig.
 
Guten Tag,

vielen Dank für die rasche Antwort.
Wenn ich es mit meinen Testdaten ausprobiere, funktioniert es einwandfrei.
Wenn ich jedoch mit realen Welt Daten teste, geht es nicht mehr.
 
Werbung:
vielen Dank für die rasche Antwort.

Bitte.

Wenn ich es mit meinen Testdaten ausprobiere, funktioniert es einwandfrei.
Wenn ich jedoch mit realen Welt Daten teste, geht es nicht mehr.

Dann stimmen die Testdaten nicht zu dem, was Du machst. Wenn Du testen willst, ob Dein Diesel-PKW auch mit Benzin fährt, macht es wenig Sinn, die 12Volt Eisenbahn mit 380KV Wechselstrom zu testen, die Ergebnisse des Tests lassen sich *wirklich* nicht entsprechend auswerten.

Deine SQL's sind irgendwie unsinnig, Im innersten gruppierst nach einer Spalte, die im Resultat nicht da ist, dann kommt ein Select *, was ein GROUP BY auf eine Spalte hat, die es gar nicht gibt. Die Aufteilung von Zeiten in einzelne Spalten ist auch alles andere als eine Glanzleistung und hilft nicht, das Problem hier besser zu verstehen. Wie schon gesagt, es ist (für mich) jetzt nicht nachvollziehbar, was Du für eine Tabelle und für Daten hast und was bei raus kommen soll.
 
Zurück
Oben