[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2004
    Beiträge
    89

    2 Identische Tabellen vergleichen

    Hallo zusammen,

    ich hoffe, ich sehe den Wald vor lauter Bäume nicht.

    Ich habe hier 2 Tabellen, die von den Feldern (Bezeichnung, Größe etc.) identisch sind.

    In Tabelle A ist ein alter Datenbestand drin, in Tabelle B wird der neue Datenbestand berechnet.

    Nun möchte ich prüfen, ob es den Datensatz von B in A gibt (ok das ist einfach per Chain etc.) und ob sich, wenn es den Datensatz gibt, er sich inhaltlich geändert hat.
    Ich könnte sicherlich jedes Feld für sich vergleichen, aber da müsste es doch eine bessere Methode geben oder?

    Vielen Dank für eure Hilfe

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wenn die Strukturen der beiden Dateien ja komplett identisch sind kannst du die DS'n miteinander vergleichen:


    FDATEI1 ....
    FDATEI2 ...

    IDSDAT1 E DSDATEI1
    IDSDAT2 E DSDATEI2

    ILERPG:
    D DSDAT1 E DS EXTFILE(DATEI1)
    D DSDAT1 E DS EXTFILE(DATEI2)

    Nun kannst du nach dem Chain die direkt die DS'n miteinander vergleichen.

    Ein Problem hast du, wenn die Feldnamen der beiden Dateien identisch sind.
    Dann musst du für eine Datei die Felder mit I-Bestimmung umbenennen (RPG) oder in ILERPG per Qualified oder Prefix (F- und D-Bestimmungen) die Felder anders definieren.

    Bei Namensgleichheit zerstört dir nämlich der 2. Chain den Inhalt der Felder aus dem 1. Chain.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Das folgende SQL Statement ermittelt alle Sätze, die unterschiedlich sind:

    Code:
       (   Select * from OldTable
        Except 
           Select * from NewTable)
    Union
       (   Select * from NewTable
        Except
           Select * from OldTable)
    Der erste Except ermittelt alle Datensätze, die in NewTable entweder nicht oder anders sind.
    Der zweite Except ermittelt alle Datensätez, die in OldTable nicht oder anders sind.
    Der Union mischt dann beide Ergebnisse zusammen und entfernt die Duplikate.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Bezüglich des "Except" bitte noch dazuschreiben:
    Ab welchem Release ist das möglich!
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Bezüglich des "Except" bitte noch dazuschreiben:
    Ab welchem Release ist das möglich!
    Release V5R3M0

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Das folgende SQL Statement ermittelt alle Sätze, die unterschiedlich sind:

    Code:
       (   Select * from OldTable
        Except 
           Select * from NewTable)
    Union
       (   Select * from NewTable
        Except
           Select * from OldTable)
    Der erste Except ermittelt alle Datensätze, die in NewTable entweder nicht oder anders sind.
    Der zweite Except ermittelt alle Datensätez, die in OldTable nicht oder anders sind.
    Der Union mischt dann beide Ergebnisse zusammen und entfernt die Duplikate.

    Birgitta
    Wenn ich länger im englischsprachigen Ausland bin, träume ich ja auch in englisch. Die Frage die sich mir stellt: Hast Du schon mal in SQL geträumt?

    GG

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von KingofKning Beitrag anzeigen
    Wenn ich länger im englischsprachigen Ausland bin, träume ich ja auch in englisch. Die Frage die sich mir stellt: Hast Du schon mal in SQL geträumt?

    GG
    Bei mir wechselt sich die Träumerei zwischen SQL, RPG und HTML/Javascript und noch so einigem Schnickschnack.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Oct 2010
    Beiträge
    15

    Zwei Identische Tabelle vergleichen !

    Mann könnte es auch unter OS/400 Release V7R1 es mit den Merge Befehl lösen und im anschluss den Datensatz entsprechend anpassen.
    Hier der Link für die SQL Referenz für V7R1.
    PDF file for SQL reference

Similar Threads

  1. Zwei Tabellen vergleichen und erste Aktualisieren
    By Matthias182 in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 05-03-08, 16:22
  2. Verknüpfen von Tabellen mit SQL
    By e_sichert in forum IBM i Hauptforum
    Antworten: 21
    Letzter Beitrag: 28-11-06, 19:43
  3. Journaling für alle Tabellen eines Schemas einschalten
    By remo2010 in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 24-11-06, 15:24
  4. DBCS Codepages vergleichen?
    By Stoeberl in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 13-11-06, 13:30
  5. Einzelne DB Tabellen sichern
    By CAL in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-06-06, 09:03

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •