[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2005
    Beiträge
    25

    Queries automatisieren

    Hallo,

    ich habe mehrere Queries in einem CL zusammengefaßt. Das ganze sieht dann so aus:

    RUNQRY QRY(mylib/abfrage_01)
    RUNQRY QRY(mylib/abfrage_02) RCDSLT(*YES)
    RUNQRY QRY(mylib/abfrage_03)

    Mir geht es um abfrage_02 mit RCDSLT(*yes). Das Query poppt auf und erwartet die Eingabe des Vergleichwertes. In meinem Fall handelt es sich um ein Datum in der Form yyyymmdd.

    Kann ich da so automatisieren, daß hier immer das Tagesdatum -1 übergeben wird? Wenn der Job also bspw. am 27.09.2011 um 00:01 Uhr läuft, soll als Parameter für die Abfrage 20110926 übergeben werden.

    Danke und Gruß
    Andreas

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das geht leider nur mit QMQRY.
    Du kannst dir per RTVQMQRY aus einem QRYDFN ein QMQRY erstellen und dann den Parameter mt &VAR definieren.
    Per STRQMQRY kannst du dann das Datum übergeben.

    Mittels SQL-Funktionen kann man sich das Datum ggf. auch berechnen.
    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
    Jul 2005
    Beiträge
    25
    Hmm, was muß ich denn bei RTVQMQRY für Parameter angeben?
    Mit RTVQMQRY QMQRY(mylib/ziel) SRCFILE(mylib/abfrage_02) ALWQRYDFN(*YES) erhalte ich nur Befehl RTVQMQRY fehlgeschlagen.

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das geht leider nur mit QMQRY.
    Du kannst dir per RTVQMQRY aus einem QRYDFN ein QMQRY erstellen und dann den Parameter mt &VAR definieren.
    Per STRQMQRY kannst du dann das Datum übergeben.

    Mittels SQL-Funktionen kann man sich das Datum ggf. auch berechnen.
    ... eleganter ist es meistens mit einem parametrisierten QMQRY eine Ausgabedatei zu erzeugen, in die man die variablen Werte reinstellt und dann diese in dem Query mit dazu zu nehmen, damit geht amn den Join Problemen aus dem Weg, die bei RTVQMQRY entsetehen können. Manchmal reicht allerding aber auch bereits eine SQL View.

    D*B
    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
    Feb 2001
    Beiträge
    20.696
    @ATH
    Schau dir die Parameter mal mit F1-Hilfe an, dann wirst du fündig.

    Dieters Idee ist in diesem Fall auch nicht schlecht.
    Fülle einfach eine Parameterdatei mit den gewünschten Abfragewerten und verknüpfe diese im Query.
    In der Satzauswahl vergleichst du dann mit der Parameterdatei.
    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

  6. #6
    Registriert seit
    Dec 2000
    Beiträge
    285

    Datum und QRY

    Hallo ath,
    das geht auch ganz alleineim QRY.
    1. Schritt: ergebnisfelder def.
    HEUTE current(date)

    X heute -(1 day)

    XT char(X)

    Dann mein Buchungsdatum umstellen
    über Ergebnisfelder
    B digits(lbbuda)

    BD substr(b, 7, 2)!!'.'!!substr(b, 5
    , 2)!!'.'!!substr(b, 3, 2)

    Sätze auswählen
    BD EQ xt

    (ich habe das Datum auf 6 Stellen gekürzt)
    Das ist das Ergebnis ( Anzeig inc. der Ergenisfelder)
    ....+....1....+....2....+....3....+....4....+....5
    HEUTE B BD X XT


    27.09.11 20110926 26.09.11 26.09.11 26.09.11
    27.09.11 20110926 26.09.11 26.09.11 26.09.11
    Da ich aus den Datumsfeldern String gemacht habe kannst du die natürlich über Substring drehen wie du willst.

    Klaus

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zunächst ein paar Fragen:
    Ist das Datum, das übergeben werden soll alpha oder numerisch?
    Wird dieses Datum verwendet, um jeweils die Werte vom Vortag zu selektieren?

    Wenn es nur darum geht das Datum vom Vortag zu ermitteln und anschließend entsprechende Werte zu selektieren, könnte dies auch über Ergebnis-Felder bewerkstelligt werden:
    1. Ergebnis-Feld: Datum des Vortages
    Code:
    CURRENT(DATE) - 1 DAY
    2. Ergebnis-Feld: Alphanumerische Darstellung des Vortages-Datums
    Code:
    CHAR(VorTag: ISO)
    3. Ergebnis-Feld: Alphanumerische Darstellung es Vortages ohne Trennzeichen:
    Code:
    SUBSTR(CharVT, 1, 4) !! 
    SUBSTR(CharVT, 6, 2) !!
    SUBSTR(CharVT, 9, 2)
    Dieses alphanumerische Datum könnte dann zur Selektierung verwendet werden.

    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
    Jul 2005
    Beiträge
    25
    Hallo,

    erst einmal vielen Dank für die vielen Antworten. Das Datum, welches ich benötige, ist numerisch.

    Da ich aber noch viele andere Queries im Einsatz habe, wäre die Umsetzung mittels RTVQMQRY schon interessiert. Für den zweiten Parameter muß ich ja vorher eine physikalische Datei anlegen. Daran scheine ich zu scheitern. Es wäre nett, wenn mir jemand sagen könnte mit welchem Kommando ich eine solche Datei anlegen kann.

    Der Hinweis von Klaus (K_Tippi) ist für mich am einfachsten umzusetzen (da hätte ich auch selber drauf kommen können).

    Klaus: In Deinem Beispiel sehe in das Feld lbbuda. Kann ich draus schließen, daß Deine Datei die LGBW ist?

    Gruß
    Andreas

Similar Threads

  1. Queries
    By dino in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-08-07, 15:25
  2. Auswahl 25 PDM automatisieren
    By K_Tippi in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 07-12-05, 11:26
  3. COUNT DISTINCT- Funktion in Queries
    By woki in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-11-05, 16:38
  4. Umswitchen von IOP automatisieren
    By kai in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 15-11-04, 09:36
  5. Makro: Übertragung von AS/400 automatisieren
    By Eva Krause in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 15-04-04, 09:49

Berechtigungen

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