[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2004
    Beiträge
    184

    SQL Verknüpfung und Datenausgabe

    Hallo Kollegen,

    ich habe 2 Tabelle die ich mit einander verknüpfe. Ich bekomme auch die richtigen Daten, aber in der 2. Tabelle habe ich immer einen Datensatz mit 3 unterschiedlichen Felder die ich ausgeben möchte.

    Bespiel:

    Tabelle 1 :
    Kunden_Nr

    Tabelle 2:
    Kunden_Nr
    Feld 1
    Feld 2
    Feld 3

    jetzige Ausgabe:
    Kunden_nr, Feld 1, Feld 2, Feld 3

    gewünschte Ausgabe:
    Kunden_Nr, Feld 1
    Kunden_Nr, Feld 2
    Kunden_Nr, Feld 3

    Muß ich die Tabelle 2 dreimal angeben?

    Vielleicht kann mir einer helfen.

    Danke schon einmal im Voraus
    Jenne

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Wenn Feld1 - 3 vom gleichen Datentyp sind, kannst du mit UNION arbeiten.

    So auf die Art:
    Code:
    Select * from (
    Select kndnr, Feld1 From tab1, tab2
    where tab1.kndnr = tab2.kndnr
    union
    Select kndnr, Feld2 From tab1, tab2
    where tab1.kndnr = tab2.kndnr
    union
    Select kndnr, Feld3 From tab1, tab2
    where tab1.kndnr = tab2.kndnr
    ) t1
    order by kndnr
    lg Andreas

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Du benötigst 3 Select-Anweisungen, die durch Union-Anweisungen als Einheit ausgeführt werden:

    Code:
       Select KundeNr, Fld1 as FLD
         From MyFile Join ...  
         Where ...
    Unoin All
       Select KundeNr, Fld2 as FLD
         From MyFile Join ...
         Where ...
    Union All
       Select KundeNr, Fld3 as FLD
         From MyFile Join ...
         Where ...
    Order By ...
    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
    May 2004
    Beiträge
    184
    Hallo Birgitta,

    das hat jetzt soweit super geklappt,
    aber das order by am Ende funktioniert nicht. Ich bekomme immer die Meldung:

    Spalte Kunden_Nr darf nicht qualifiziert werden.

    Gruß
    Jenne

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Ich nehme an, Du verwendest die Lösung von Andreas mit dem verschachtelten Sub-Select und nicht meine Lösung.
    In Andreas Lösung musst Du, sofern Du die Kunden-Nr. qualifiziert angegeben willst T1 (und nicht den Datei-Namen) davor setzen.

    Ansonsten könnest Du auch im Order By die Spalten-Nr. angeben, (z.B. Order By 1)

    Der Order By sortiert die Daten aus allen 3 Selects (und nicht aus den einzelnen Selects, das ist erst ab Release 6.1 möglich).

    Vielleicht noch eine Anmerkung zu UNION und UNION ALL.
    Wird UNION ohne ALL angegeben, werde Duplikate eliminiert, d.h. wenn Du also für den gleichen Kunden in Feld 1 und Feld 2 den gleichen Wert hast, bekommst Du nur eine Zeile.
    Bei Verwendung von UNION ALL werden alle Sätze ausgegeben, d.h. bei gleichen Feld-Wert werden mehrere Sätze ausgegeben.

    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
    May 2004
    Beiträge
    184
    Danke Birgitta, danke Andreas,

    jetzt hat alles geklappt.

    Order by mit der Nummer wahr der letzte Baustein der mir noch fehlte.

    Gruß
    Jenne

  7. #7
    Registriert seit
    Aug 2003
    Beiträge
    1.508

Similar Threads

  1. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  2. SQL UPDATE, verknüpfung zweier Dateien
    By desti82 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-07-06, 15:25
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  4. SQL - Rechnen bei left-outer-join verknüpfung
    By hzille in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 06-07-04, 10:38

Berechtigungen

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