-
RPG mit Embedded SQL, JOIN ..
Hallo,
in einem RPG-Programm mit embedded SQL möchte ich 2 Dateien mit identischem Suchbegriff bearbeiten (Dateien sind per DDS erstellt worden)
Leider ist der Suchbegriff in Datei A folgendermassen definiert:
8-st alphan., ist immer gefüllt mit einer Zahl
von 00001 bis bis 99999, die 3 führenden Stellen sind immer = ´000´.
Der Suchbegriff in Datei B ist 5-stellig numerisch (5S 0).
Können diese unterschiedlich defiierten Begriffe verbunden werden ?
-
Hallo,
das müsste funktionieren, Du musst lediglich die Join-Felder entsprechend aufbereiten.
PHP-Code:
C/EXEC SQL
C+ Declare MyCsr ...
C+ SELECT Fld1, Fld2, Fld3
C+ from MyFileA join MyFileB on Substr(KeyA, 4, 5) = Digits(KeyB)
C+ Where ...
C/End-Exec
oder
PHP-Code:
C/EXEC SQL
C+ Declare MyCsr ...
C+ SELECT Fld1, Fld2, Fld3
C+ from MyFileA join MyFileB on Cast(KeyA as Dec(5, 0)) = KeyB
C+ Where ...
C/End-Exec
Soweit ich weiß, können sogar ab Release V5R3M0 numerische Felder direkt mit alphanumerischen Feldern, die nur Ziffern enthalten verknüpft werden (d.h. eine Aufbereitung ist nicht notwendig!)
Birgitta
-
Hallo,
läuft aber nicht so dolle, bei großen Datenbeständen könnte da eine zusätzliche Tabelle, mit zwei Feldern, in einem das Huddelfeld, in dem anderen das numerische und zwei Indexe dem auf die Sprünge helfen. Oder man macht es ordentlich und nimmt in die Datei mit dem Huddelfeld einen ordentlichen (foreign) key mit auf.
mfg
Dieter Bender
Zitat von B.Hauser
Hallo,
das müsste funktionieren, Du musst lediglich die Join-Felder entsprechend aufbereiten.
PHP-Code:
C/EXEC SQL
C+ Declare MyCsr ...
C+ SELECT Fld1, Fld2, Fld3
C+ from MyFileA join MyFileB on Substr(KeyA, 4, 5) = Digits(KeyB)
C+ Where ...
C/End-Exec
oder
PHP-Code:
C/EXEC SQL
C+ Declare MyCsr ...
C+ SELECT Fld1, Fld2, Fld3
C+ from MyFileA join MyFileB on Cast(KeyA as Dec(5, 0)) = KeyB
C+ Where ...
C/End-Exec
Soweit ich weiß, können sogar ab Release V5R3M0 numerische Felder direkt mit alphanumerischen Feldern, die nur Ziffern enthalten verknüpft werden (d.h. eine Aufbereitung ist nicht notwendig!)
Birgitta
-
Danke für die Antworten.
Ich habe festgestellt, dass in den beiden Dateien noch weitere Kriterien auf Übereinstimmung geprüft werden müssen.
Unter anderem gibt es ein Datum, in Datei A: 4 x 2,0 definiert, in der anderen Datei richtig als Datums-Feld angegeben.
Ich löse die Sache jetzt folgendermassen:
mit SQL die Haupt-Datei lesen (mit entspr. Filter), dazu mit RPG-Anweisung den jeweils in der anderen Datei benötigten Satz dazu lesen.
Die Unterschiede in der Definition kommen daher, dass die Dateien aus verschiedenen Anwendungs-Bereichen von unterschiedlichen Entwicklern zu unterschiedlichen Zeiten erstellt wurden.
mfg Ludger
Similar Threads
-
By muadeep in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 03-08-06, 13:25
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
By lossin in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 23-08-05, 12:00
-
By Zupfl50 in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 06-10-04, 21:04
-
By Ludger Muhmann in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-07-02, 09:49
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks