PDA

View Full Version : SQL + RPG



holli
30-04-02, 14:01
Hallo *all.

Ich möchte zwei gleiartige Dateien in RPG mit SQL verarbeiten. Sie haben beiden einen identischen Satzaufbau, allerdings sind die Feldnamen unterschiedlich.

Zum Verknüpfen beider Dateien habe ich die UNION-Anweisung benutzt. In der ORDER BY Anweisung habe ich einige Felder der Zweitdatei angegeben. Das funktioniert unter V4R4 auch wunderbar.

Unter V5Rx läuft das nicht. Es wird immer der Fehler, Die Felder aus der "Order By"-Anweisung sind in der Ergebnistabelle nicht vorhanden, im Joblog ausgegeben und keine Sätze ausgewählt.

Leider habe ich nicht allzuviel SQL-Erfahrung, was mache ich falsch? Für jeden Tipp bin ich dankbar

Gruß Holli

BenderD
30-04-02, 14:21
Hallo,

was das SQL angeht weiss ich noch nicht, was das Fragen angeht: vergessen die SQL Anweisung hinzuschreiben. Wenn letzteres behoben ist, sollte ersteres zu schaffen sein.

Dieter

holli
30-04-02, 15:32
Hallo, hier die SQL-Anweisungen:

*
C/EXEC SQL
C+ DECLARE SQL#### SCROLL CURSOR FOR SELECT * FROM DRPAP WHERE
C+ RPAKONZERN between :RTNKONZVON and :RTNKONZBIS UNION ALL SELECT *
C+ FROM DREPP WHERE REPKONZERN between :RTNKONZVON and :RTNKONZBIS
C+ ORDER BY REPBUSCHL, REPBUCHART
C/END-EXEC

BenderD
30-04-02, 16:21
Hi,

hmhh, select * lässt natürlich nicht erkennen, wie die Felder heissen.
Sieht aber so aus, dass die ORDER BY Felder eher in der zweiten Datei stecken, das kann auf keinen Fall gehen, wenn ich das richtig in Erinnerung habe, werden die Feldnamen von der ersten gezogen. (kann eigentlich auch unter V4 nicht gegangen sein).
am klarsten ist es die Felder alle zu benamen, damit sie in der Ergebnismenge benamt sind. Also:
SELECT RTUMS as UMSATZ ...
FROM
WHERE
UNION
SELECT REUMS as UMSATZ ...
FROM
WHERE
ORDER BY UMSATZ

dies ist nur schematisch.

Dieter

PS: ohne Group PTF für die Datenbank kann alles kaputt sein, CumCD reicht nicht aus.

rmittag
30-04-02, 18:44
SQL sieht für solche älle eine einfache Lösung vor : order by 1, 2, 3. Es reicht, die Nummer der Spalte anzugeben.

Gruß Rolf

holli
02-05-02, 08:11
@BenderD
Das funktioniert unter V4Rx definitiv.

Vielen Dank für deinen Tipp. Mit der Umbenennung klappt es wunderbar.

@Rmittag
Vielen Dank. Das hab ich noch nie irgendwo gesehen oder gelesen, klappt bestens.