[NEWSboard IBMi Forum]

Thema: SQL und V7.R3

  1. #1
    Registriert seit
    Jul 2003
    Beiträge
    331

    Unhappy SQL und V7.R3

    Hi, Problem mit SQL nach Systemumstellung bei einem Mandanten von V7.R1 nach V7.R3 und gleichzeitig Umstellung auf Power-9.

    Ein CL ruft ein SQL-Script auf:


    /* mit SQL aus LAGBESpf und BOLVGLpf die Arbeitsdatei BOLDIFpf +
    auffüllen */
    RUNSQLSTM SRCFILE(ANCRASRC/QSQLSRC) SRCMBR(PR_LAG350) +
    COMMIT(*NONE) NAMING(*SYS) DATFMT(*EUR) +
    DATSEP('.') TIMSEP(':') DBGVIEW(*STMT)


    FTP-Script
    -- P R _ L A G 3 5 0
    --
    -- aus LAGBESpf und BOLVGLpf eine Vergleichsdatei erstellen
    -- --> BOLDIFpf


    insert into BOLDIFpf
    ( bdstkn ,
    bdidenti ,
    bdnmen ,
    bdbopale ,
    bdarti ,
    bdvere ,
    bddess ,
    bdgrsc ,
    bdfarb ,
    bdfar2 ,
    bdidentib ,
    bdmeter ,
    bddatum )
    select
    lag.lastkn ,
    lag.lavgre12 ,
    lag.lanmen ,
    lag.labopale ,
    substring(lag.laarti, 1, 6) as quali,
    lag.lavere ,
    lag.ladess ,
    lag.lagrsc ,
    lag.lafarb ,
    lag.lafar2 ,
    value(bol.bvidenti, 0) ,
    value(bol.bvmeter, 0,00) ,
    value(bol.bvdatum, '0001-01-01' )
    from lagbespf as LAG
    LEFT OUTER JOIN bolvglpf as BOL ON
    LAG.LASTKN = BOL.bvstkn
    where lag.lafirm = 01
    and lag.lalort = 810
    and lag.lapros = 82 ;

    insert into BOLDIFpf
    ( bdstkn ,
    bdidenti ,
    bdnmen ,
    bdbopale ,
    bdarti ,
    bdvere ,
    bddess ,
    bdgrsc ,
    bdfarb ,
    bdfar2 ,
    bdidentib ,
    bdmeter ,
    bddatum )
    select
    bol.bvstkn ,
    value(lag.lavgre12, 0) ,
    value(lag.lanmen, 0,00) ,
    value(lag.labopale, 0) ,
    value(substring(lag.laarti, 1, 6), ' ') ,
    value(lag.lavere, ' ') ,
    value(lag.ladess, 0) ,
    value(lag.lagrsc, ' ') ,
    value(lag.lafarb,' ') ,
    value(lag.lafar2, ' ') ,
    bol.bvidenti ,
    bol.bvmeter ,
    bol.bvdatum
    from lagbesMH as LAG
    RIGHT EXCEPTION JOIN bolvglpf as BOL ON
    LAG.LASTKN = BOL.bvstkn ;


    Es kommt immer eine Fehlermeldung.

    SQL0104 Pos. 22 Token . ungültig. Gültige Token: + - AS
    .


    21 select
    22 lag.lastkn ,
    23 lag.lavgre12 , etc.


    Ich habe schon alles Moegliche versucht. Alle Felder mit Datei-Namen als Praefix. und und und ..
    Im CL habe ich auch mal anstatt Naming (*SYS) Naming (*SQL) versucht.

    Vielleicht kann mir jemand helfen. Wenn nicht, dann werde ich ein RPG-Progamm erstellen mit denselben Funktionen wie das SQL-Script.



  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Guten Morgen Ludger,

    das wird sicher daran liegen, dass ab 7.3 LAG eine SQL Funktion ist, mit der man den Wert einer Spalte aus dem aktuellen Satz mit dem des vorherigen Satzes vergleichen kann:

    Klassisches Beispiel wäre, wenn ich wissen will, um wieviel sich das aktuelle Gehalt mit dem des Vormonats verändert hat:

    Code:
    Select name, month, salary, 
       Salary -
       Lag(salary, 1 , 0) Over (Order By month)
    From prouzalib.employee
    lg Andreas

  3. #3
    Registriert seit
    Jul 2003
    Beiträge
    331
    oh, guter Hinweis. Werde ich mal testen. Vielen Dank.

  4. #4
    Registriert seit
    Jul 2003
    Beiträge
    331
    Danke Andreas, ich habe alle LAG in LAX geändert, und schon hat es wieder funktioniert.

    LG. Ludger

Berechtigungen

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