[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jun 2014
    Beiträge
    25

    Question Datenübertragung von System i:Filtern von Daten

    Hallo zusammen,

    ich habe aktuell folgendes Newbie Problem:
    ich bastle mir aktuell mit dem Tool von IBM ein Datenübertragung von der AS400 ins Excel.
    Dabei möchte ich ein Datenfeld (PDATE1) bei der Übertragung filtern, in dem Datenfeld stecken Daten im folgendem Format YYYYMMTT.

    Der Filter soll mir nachher nur noch Daten anzeigen, ab dem aktuellen Tag und zukünftige.

    Bitte um Hilfe.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Click image for larger version. 

Name:	AS400-Uebertragung.PNG 
Views:	120 
Size:	24,7 KB 
ID:	259  


  2. #2
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    where T1.POMAND = 1 AND T1.PDATE1 >= 20140603

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    t1.pdate1 >= year(current date) * 10000 + month(current date) * 100 + day(current date)
    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
    Aug 2001
    Beiträge
    2.873
    Vor Release 7.2 benötigst Du ein relativ komplexes Konstrukt. Entweder so wie es Baldur angegeben hat oder z.B. auch So:

    T1.PDate1 = Dec(VarChar_Format(Current_Timestamp, 'YYYYMMDD'), 8, 0)

    Ab 7.2 wird es dann einfacher, d.h. ein Datum kann direkt mit einder der Built-In-Funktionen DEC, INT oder BIGINT in ein numerisches Datum im Format YYYYMMDD übersetzt werden:

    T1.PDate1 = Int(Current_Date);

    Da das numerische Tagesdatum vermutlich häufiger gebraucht wird, wäre es zu empfehlen eine User Defined Function zu schreiben und diese zu verwenden. Oder das Ganze in einer View zu hinterlegen.

    Code:
    CREATE FUNCTION YourSchema/NUMCURDATE() 
           RETURNS  DECIMAL (8, 0)  
           LANGUAGE SQL 
           
    Return Dec(VarChar_Format(Current_Timestamp, 'YYYYMMDD'));
    Diese Funktion kann dann wie folgt verwendet werden:

    Where P1Date = NumCurDate();

    Birgitta
    Birgitta Hauser

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

  5. #5
    Registriert seit
    Jun 2014
    Beiträge
    25
    Guten Morgen Fuerchau,

    dein Lösungsvorschlag klappt prima, vielen Danke!

    Gruß
    PFR

  6. #6
    Registriert seit
    Jun 2014
    Beiträge
    25
    Guten Morgen Birgitta,

    danke für den Hinweis mit den SQL Funktionen, klingt gut der Ansatz, nur leider weiß ich nicht wie ich diese im AS400 System hinterlege.

    Wir haben aktuell die Version V6R1 im Einsatz.
    Gibt es da auch die Möglichkeit ein SQL Funktion, wie du sie beschrieben hast zu hinterlegen, wenn ja, wie und bevorzugt mit welchem grafischem Tool einzurichten (i Navigator, Drittanbieter Tool?).

    SQL Funktionen würden mir hier bestimmt das Leben erleichtern bei den arbeiten mit den DTF-Files verwenden kann.




    Zitat Zitat von B.Hauser Beitrag anzeigen
    Vor Release 7.2 benötigst Du ein relativ komplexes Konstrukt. Entweder so wie es Baldur angegeben hat oder z.B. auch So:

    T1.PDate1 = Dec(VarChar_Format(Current_Timestamp, 'YYYYMMDD'), 8, 0)

    Ab 7.2 wird es dann einfacher, d.h. ein Datum kann direkt mit einder der Built-In-Funktionen DEC, INT oder BIGINT in ein numerisches Datum im Format YYYYMMDD übersetzt werden:

    T1.PDate1 = Int(Current_Date);

    Da das numerische Tagesdatum vermutlich häufiger gebraucht wird, wäre es zu empfehlen eine User Defined Function zu schreiben und diese zu verwenden. Oder das Ganze in einer View zu hinterlegen.

    Code:
    CREATE FUNCTION YourSchema/NUMCURDATE() 
           RETURNS  DECIMAL (8, 0)  
           LANGUAGE SQL 
           
    Return Dec(VarChar_Format(Current_Timestamp, 'YYYYMMDD'));
    Diese Funktion kann dann wie folgt verwendet werden:

    Where P1Date = NumCurDate();

    Birgitta

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... noch zwei einfache Alternativen:
    - eine View anlegen, die das alles innerhalb der Datenbank macht
    - eine Tabelle mit einem Satz anlegen, in dem das Vergleichsdatum im gewünschten Format drinsteht und diese über JOBSCDE einmal nächtens aktualisieren. Die kann man dann überall zujoinen, wo man das braucht.

    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/

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hallo PFR,

    der Souce Code, den ich angegeben habe kannst Du direkt im IBM i Navigator (Eine Prozedur ausführen) eingeben und ausführen. Das ist eine einmalige Sache, d.h. es wird ein permanentes Objekt, eine Funktion erstellt. Diese Funktion siehst Du natürlich auch im IBM i Navigator unter Deiner Bibliothek.
    Über den IBM i Navigator kannst Du natürlich auch direkt die Funktion erfassen, d.h. unter Deiner Bibliothek/Schema auf Funktionen positionieren, Rechtsklick, Neu, SQL-Funktion.

    Birgitta
    Birgitta Hauser

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

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... wobei die angegebene Quelle Full Tabe scan verdächtig ist - ohne Angabe der entsprechenden Option ist die non deterministic, wird also für jeden Vergleich auf Satzebene aufgerufen. Da geht auf einen ratsch mehr Zeit vertrödelt als bei allen CLOSSQLCSR und select Feldliste eingesparten Nano- und Microsekunden...

    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/

  10. #10
    Registriert seit
    Jun 2014
    Beiträge
    25
    Guten Morgen Birgitta,

    leider wirft er mir eine Fehlermeldung zurück (siehe Screenhot)
    hat jemand eine Idee was hier nicht klappt?
    Click image for larger version. 

Name:	SQL-Anweisung.PNG 
Views:	25 
Size:	26,8 KB 
ID:	264

    Zitat Zitat von B.Hauser Beitrag anzeigen
    Hallo PFR,

    der Souce Code, den ich angegeben habe kannst Du direkt im IBM i Navigator (Eine Prozedur ausführen) eingeben und ausführen. Das ist eine einmalige Sache, d.h. es wird ein permanentes Objekt, eine Funktion erstellt. Diese Funktion siehst Du natürlich auch im IBM i Navigator unter Deiner Bibliothek.
    Über den IBM i Navigator kannst Du natürlich auch direkt die Funktion erfassen, d.h. unter Deiner Bibliothek/Schema auf Funktionen positionieren, Rechtsklick, Neu, SQL-Funktion.

    Birgitta

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    STRSQL unterstützt dies nicht da nur 1 Befehl akzeptiert wird.
    Du kannst die Funktion (wie oben beschrieben) im Opsnav erstellen oder in einer normalen SRC erfassen und dann per RUNSQLSTM erzeugen.
    Letzteres hat den Vorteil, dass du die Quelle permanent sicherst.
    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

  12. #12
    Registriert seit
    May 2002
    Beiträge
    1.121
    Wenn du im STRSQL bist, dann lass einfach das ; weg.
    Dann sollte es gehen

    Gruß
    Ronald

    sagt er doch: Token ; ungültig

Similar Threads

  1. System i Daten im Dashboard auf PC und mobilen Geräten
    By ML-Software in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 04-03-14, 10:52
  2. System i Daten im Dashboard auf PC und mobilen Geräten
    By ML-Software in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 04-03-14, 10:46
  3. DatenÜbertragung
    By RainerG in forum NEWSboard Windows
    Antworten: 1
    Letzter Beitrag: 26-05-03, 10:24
  4. DatenÜbertragung
    By RainerG in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-05-03, 12:48
  5. Antworten: 3
    Letzter Beitrag: 25-02-02, 22:27

Berechtigungen

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