Anmelden

View Full Version : SQl: select * From(select ...) as Res group By



oulbrich
12-01-12, 11:12
Hallo

ich möchte folgenden SQL ausführen.

Select * from (SELECT *FROM RNRPF050 ORDER by RNRFIR, RNRANR, RNRVA1, RNRVA2, RNRHER, RNRPOS
) AS RESULT
group by RNRANR, RNRHER

leider kann ich den auf der iSeries nicht laufen laufen. Nehme ich z.b. SQuirrel läuft das ohne Probleme.
Geht ein verschachteltere SQL auf der iSeries mich ??

Gruss Olaf Ulbrich

B.Hauser
12-01-12, 11:25
Verschachtelte Sub-Selects sind auf DB2 for i auf alle Fälle möglich.
Allerdings ist Deine Syntax für den Group by nicht zulassig:

1.Die beiden Spalten, die im Group By angegeben werden, müssen auch im äußeren Select angegeben werden und keine anderen Spalten! Es sei den Du willst mit Aggregat-Funktionen (z.B. sum) irgendwas berechnen, aber auch dann muss dies explizit angegeben werden.
2. Ein Order By im verschachtelten Sub-Select ist erst mir Release 6.1 möglich. Der Order By für das gesamte Statement funktioniert schon immer.

Squirrel ist ein Tool, mit dem Du auch auf die DB2 for i zugreifen kannst. Ich vermute Du verwendest eine andere Datenbank (z.B. MySQL oder SQLServer) mit Squirrel.

Birgitta

BenderD
12-01-12, 12:06
... wobei man den inneren Order By auch durch Aufnahme der entsprechenden Felder in die Group Bedingung erreichen kann...

select <Feldliste>
from RNRPF050
GROUP by RNRFIR, RNRANR, RNRVA1, RNRVA2, RNRHER, RNRPOS

und in Feldliste stehen dann die Group Felder und Summenfunktionen zur Verfügung. Das ResultSet kann man dann noch mit einer Order By Klausel final sortieren.

D*B

oulbrich
12-01-12, 12:58
Besten Dank ihr beiden. Hat bestens funktioniert.
Gruss Olaf Ulbrich