[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    125

    QMQRY und Primärdatei

    Hallo zusammen,

    ich habe mehrere Queries auf QMQRY umgestellt und jetzt das Problem, das die Auswähl 'Mit Primärdatei gleiche Sätze' nicht übernommen wurde.
    Kann ich das in der QMQRYSRC ändern? Und wenn ja, wie?

    Danke an alle im voraus.

    Gruss
    Matthias

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    125

    Quelle

    Hier noch ein Ausschnitt der Quelldatei
    Problem ist die letzte Verknüpung, zum Teil ist in der
    Artikeldatei keine entsprechende Artikelnummer vorhanden

    0001.00 H QM4 05 Q 01 E V W E R 01 03 04/11/22 13:31
    0002.00 V 1001 050 Rechnungsausgänge GD nach Vertreter
    0003.00 V 5001 004 *HEX
    0004.00 SELECT
    0005.00 ALL A.VERTRT, A.KUNNUM, D.BZ1, D.PLZ, D.ORT, A.ORDNUM, A.BELNUM,
    0006.00 A.DRKDAT, B.ASTNUM, E."CHAR", E.ZF3, (B.POSWRT), B.GELMGE, E.VKPRS
    0007.00 FROM FSBD106/FSFAK00P A,
    0008.00 FSBD106/FSFAK01P B,
    0009.00 FSBD101/FSADR01P C,
    0010.00 FSBD101/FSADR00P D,
    0011.00 FSBD101/FSAST00P E
    0012.00 WHERE A.BELNUM = B.BELNUM
    0013.00 AND A.KUNNUM = C.MANNUM
    0014.00 AND C.ADRNUM = D.ADRNUM
    0015.00 AND B.ASTNUM = E.ASTNUM

    0016.00 AND( A.DRKDAT BETWEEN &FDATE AND &TDATE
    0017.00 AND A.VERTRT = &VTX1
    0018.00 AND C.VWDART = 'VR'
    0019.00 AND C.ZNUM = 1

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Mit Primärdatei gleiche Sätze ist ein "Inner Join", der durch Aufzählung der Dateien und der Beziehungen in der Where-Klausel so korrekt übernommen sit.
    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

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    ist das nicht ein left join? der auch Sätze liefern soll, die kein Pendant haben?


    Dieter Bender


    Zitat Zitat von Fuerchau
    Mit Primärdatei gleiche Sätze ist ein "Inner Join", der durch Aufzählung der Dateien und der Beziehungen in der Where-Klausel so korrekt übernommen sit.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Hallo Fuerchau und BenderD !

    Hatten wir nicht vor kurzem schonmal eine Diskussion über die ganzen JOINs in bezug auf Query und QMQuery?

    Gruß
    Jürgen

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Hallo Matthias!

    Ändere die Teile der WHERE-Bedingung um die Dateien zu verbinden in einen LEFT OUTER JOIN um. Hier ist dieser Join beschrieben:

    http://publib.boulder.ibm.com/iserie...bafymst126.htm .

    Viele Grüße
    Jürgen

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    jetzt wo du's sagst...

    Zitat Zitat von Pikachu
    Hallo Fuerchau und BenderD !

    Hatten wir nicht vor kurzem schonmal eine Diskussion über die ganzen JOINs in bezug auf Query und QMQuery?

    Gruß
    Jürgen
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Wenn im Join keine on-Beziehung benannt ist, sondern ausschließlich eine Where-Bedingung unter Ausschluss von NULL-Values, dann ist das ein INNER JOIN. Enthält allerdings die 1. Datei auch NULL-Werte in den Where-Feldern, kann es zu unerwünschten Ergebnissen führen, da NULL in der 1. Datei mit NULL in der 2. verglichen wird, was auch zutrifft, wenn da kein satz ist.

    Also besser immer per JOIN die Verbindung definieren (ausser, wenn NULL's kein Thema sind).

    Left [outer] Join on = Alle Sätze der 1. Datei, falls vorhanden auch die der 2. Datei (im Gegensatz zu Query liefert SQL den NULL-Wert und nicht den Default)

    Exception Join on = Alle Sätze der 1. Datei, die NICHT in der 2. Datei sind
    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

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo

    das rechnen mit NULL gehorcht einer dreiwertigen Logik:
    alle Vergleiche mit NULL liefern false
    d.H. inner join lässt alle Sätze weg, wo eine der beiden Dateien im Vergleichsfeld NULL hat und auch die wo beide NULL haben.
    Das liefern von NULL Werten kann man mit COALESCE unterdürcken. COALESCE(FEld1, ' ') liefert blanks, wenn Feld1 NULL ist, ansonsten den Inhalt von Feld1).

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Wenn im Join keine on-Beziehung benannt ist, sondern ausschließlich eine Where-Bedingung unter Ausschluss von NULL-Values, dann ist das ein INNER JOIN. Enthält allerdings die 1. Datei auch NULL-Werte in den Where-Feldern, kann es zu unerwünschten Ergebnissen führen, da NULL in der 1. Datei mit NULL in der 2. verglichen wird, was auch zutrifft, wenn da kein satz ist.

    Also besser immer per JOIN die Verbindung definieren (ausser, wenn NULL's kein Thema sind).

    Left [outer] Join on = Alle Sätze der 1. Datei, falls vorhanden auch die der 2. Datei (im Gegensatz zu Query liefert SQL den NULL-Wert und nicht den Default)

    Exception Join on = Alle Sätze der 1. Datei, die NICHT in der 2. Datei sind
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    125
    Danke an alle für die Antworten.
    Werde mich jetzt mal mit dem Left outer Join beschäftigen.

    Gruss

    Matthias

Similar Threads

  1. Antworten: 2
    Letzter Beitrag: 02-06-05, 13:48
  2. QMQRY in CL Programm
    By Hubert in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 11-05-05, 13:25
  3. QMQRY LEFT OUTER JOIN
    By Matthias.Hayn in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 06-12-04, 13:33
  4. Gruppenwechsel und Summensätze in QMQRY?
    By Matthias.Hayn in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-07-04, 09:26
  5. QMQRY
    By Atomik in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 21-11-01, 10:45

Berechtigungen

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