[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2002
    Beiträge
    29

    Question Union in Query?

    Uns stellt sich aktuell das Problem, auf den Inhalt zweier physischer Dateien gleichen Aufbaus gemeinsam über Query zuzugreifen.

    Der Weg über eine DDS-beschriebene logische Datei, die beide Quelldateien vereint, geht nicht, da in Query jeweils nur ein Satzformat ergo nur eine Quelldatei geöffnet wird. (Oder gibt es einen Trick?)

    Eine logische Datei über SQL - CREATE VIEW mit der Anweisung UNION zu erstellen, ist laut den Informationen hier im Forum erst ab R5V2 möglich. Wir werden jedoch noch länger bei V5R1 bleiben müssen.

    Weiss jemand eine Lösung?

    Vielen Dank

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    54
    Hallo,

    man kann PFILE zweimal in der LF angeben:

    R FORMAT1.........PFILE(FILE1)
    ........................PFILE(FILE2)

    K KEY1
    K KEY2
    K KEY3


    Nachteil solcher Dateien beim Query:

    Es wird bei manchen Abfragen eine temporäre Kopie der Datenbestände erzeugt, was natürlich eine Weile dauern kann.

    Viele Grüße
    Heinz Bretthauer

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928

    Union in Query

    Hallo Klaus,

    die einzige Möglichkeit, die ich im Query kenne, sind mehrere aufeinanderfolgende Queries.

    Das 1. erstellt eine Arbeits-Datei, in der die Sätze aus der 1. Datei gespeichert werden.
    Das 2. fügt die Sätze aus der 2. Datei in die Arbeits-Datei ein.
    Das 3. verarbeitet die Arbeits-Datei.

    Aber zum Glück gibt es ja den Query Manager (STRQM)
    Erstelle ein QM-Query im SQL: Beispiel
    PHP-Code:
    select                              
    -- Spalten                          
       A
    .Feld1A.Feld2A.Feld3      
    -- Tabellen                         
          FROM 
    "MYLIB"/"MYFILE1" A    
    -- Zeilenauswahl                    
          WHERE 
    (A.Feld1 <> ' ')          
       
    Union                            
       Select                           
    -- Spalten                          
      B
    .Feld1B.Feld2B.Feld3,        
    -- 
    Tabellen                         
          FROM 
    "MYLIB2"/"MYFILE2" B      
    -- Zeilenauswahl                    
          WHERE 
    (B.Feld3 <> ' '
    Mit STRQM kannst Du das Query dann ausführen:
    PHP-Code:
    STRQMQRY QMQRY(MYLIB/TESTUNION
    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
    Jun 2002
    Beiträge
    29
    Vielen Dank an Herrn Bretthauer - der Trick mit den beiden direkt aufeinander folgenden PFILE Klauseln funtioniert!

    Bisher haben wir mangels besseren Wissens stets pro PFILE auch einen eigenen Satzformatnamen angegeben, und uns damit anscheinend selbst unnötig Steine in den Weg gelegt.

    Danke für die prompte Hilfe und schöne Grüße zurück!

Similar Threads

  1. Query mit Eingangsfolge
    By Frank Ziegler in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 10-12-06, 10:21
  2. QueryManager / Query ---> Aufruf mit Variablen
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 29-11-06, 18:07
  3. Query Manager -_-
    By Azubiiiiii in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 03-08-06, 09:44
  4. Query und Datum
    By Hubert Brethauer in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 05-05-06, 12:37
  5. Antworten: 1
    Letzter Beitrag: 24-04-06, 10:37

Berechtigungen

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