Zum Inhalt springen

AS400/RPG: Wie mach ich sowas wie'n "SQL-join" in RPG


Empfohlene Beiträge

Geschrieben

Hei,

isch hab da en prob. Ich soll hier was in RPG proggen. Und zwar lese ich hier zwei FILEs aus und der key is KDNR und REL. Also die beiden sachen gibbet in beiden FILEs.

In SQL würde ich einen join machen und die tabelle sieht hübsch aus.... aba in RPG???

wenn ich meinen write mache, dann schreib dat imma erst das aus FILE 1 und dann dat aus FILE 2 .... und der letzte satz aus FILE 2 steht dann noch im SPeicher und dadurch kommt ja alles falsch...

kann mia jemand helfen???

Big thx

Geschrieben

Hy LoCal,

wie wärs hiermit:

Datei1:

xx1

xx2

xx3

xx4

Datei2:

xx5

xx6

xx7

xx8

xx ist der Key

KLIST

Feld 1 *loval

Feld 2 *loval

Positionieren Tab1 SETLL(Klist)

READE Tab1(Klist)

merken(XX)

Do not EOF(Tab1)

Lesen Tab2(mit Key xx von Tab1)

Verarbeiten Satz(da zu diesem Zeitpunkt nur zwei übereinstimmende Sätze möglich sein können.)

READE Tab1

Enddo

Welch Datei sich für Datei 1 oder 2 handelt musst du selbst herausfinden.

Im allgemeinen lassen sich solchen Probleme mit Hilfsfeldern bewältigen.

Probiers mal

Viel Glück!!!

Geschrieben

dies Beispiel ist nur ein Grundgestell.

Wenn du Satzduplikate in einer der Dateien hast(weswegen auch immer) musst du natürlich den Algorythmus dementsprechend ändern.

Have fun.

Geschrieben

ein Join ist eine verbindung zweier Dateien mit gleichem Schlüssel(Schlüsselfeldern).

z.b.:

Datei1 Key=PNR, Feld=Adresse,PLZ

Datei2 Key=PNR, Feld=Name,Telefonnummer

Datei1 --JOIN-- Datei2

JoinDatei = PNR, Adresse,PLZ,Name,Telefonnummer

Man kann auch andere Varianten verwirklichen

(NON-EQUI-JOIN, Outer-Join, Inner Join)

Übrigens dies hier im Beispiel ist ein Equi-Join(Gleiches zusammen)

anders ist der NON-Equi-Join(Ungleich).

Geschrieben
Original geschrieben von LoCal

Ich kann das aba nicht mit ner logischen machen...

ich muß die beiden Dateien in RPG verbinden :(

ICH WILL ENDLICH JAVA AUF DIESER SCHWARZEN KISTE

LoCal

hä?

WAS genau willst du denn nun machen? Zwei Dateien in einem RPG-Programm zu nutzen, ist doch gar nicht so schwer?!?

oder haben die beiden Dateien die gleichen Variablen bzw. Variablennamen?

Geschrieben
Original geschrieben von beebof

hä?

WAS genau willst du denn nun machen? Zwei Dateien in einem RPG-Programm zu nutzen, ist doch gar nicht so schwer?!?

oder haben die beiden Dateien die gleichen Variablen bzw. Variablennamen?

Mein Problem is, das die Ausgabe dann völlig falsch is:

Alzo, ich mach ma einen bleistiel :)

die datei 1 enthält a1 und a2 und dabei 2 enthält b1 .. der key is kdnr der erscheint aba nciht in der outfile.

a1 enthält: aaa, bbb, ccc, ddd

a2 enthält: zzz, yyy, xxx, www

und

b1 enthält: 111, 222,333,444

aussehen soll die ausgabe so:

aaa, zzz, 111

bbb, yyy, 222

ccc, xxx, 333

ddd, www, 444

ich erhalte aba folgendes:

aaa, zzz

bbb, yyy

ccc, xxx

ddd, www,

ddd, www, 111

ddd, www, 222

ddd, www, 333

ddd, www, 444

und dat nervt mich

Peace,

Geschrieben

und wie machst du deine ausgabe? mit nem EXCPT? oder wie?

(poste doch mal deinen quelltext)

meine idee:


           read datei1                      99

*in99  cabeq'1'               ende

kdnr   chain datei2

 

so würd ich es machen... er liest also zeilenweise aus datei1 (die schleife musst da natürlich noch einbauen...) und dann mit KDNR aus datei1 mit hilfe von CHAIN die daten aus der zweiten datei dazu einlesen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...