Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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

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!!!

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.

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).

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

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?

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,

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.