[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2011
    Beiträge
    94

    SQL Update Datei mit den Ergebnis aus einer CTE

    Hallo zusammen,

    ich möchte eine Tabelle mit dem Ergebnis aus eine CTE updaten.

    Beim UPDATE kommt es zur Fehlermeldung. "[SQL0199] Schlüsselwort UPDATE nicht erwartet. Gültige Token: ( SELECT VALUES."

    Kann man innerhalb ein CTE kein Update machen?

    PHP-Code:
    with 
    -- Tabelle A1 kummulieren aller Umsätze einer Kundenauftragspos
    a1 
    as(      
          
    select distinct kundeauftragpossum(umsatz)                       
            
    from Artikelhistorie a1
              where   a1
    .Datum between 20170101 and 20171231 
            group by kunde
    auftragpos      
        
    ), 
    -- 
    Tabelle A2 ermitteln aller gültigen Pos 
    a2 
    as(
          
    select kundeauftragpos  AuftragsPostionen a2
            inner join GueltigePositionen  a3                                       
              on    a2
    .Kunde a3.kunde                                                
            where   a3
    .Status 'OK'
        
    ), 
    -- 
    Tabelle A3 Ergebnis aus A1/A2
    a3 
    as (select distinct Kundesum(Umsatz) as GesamtUmatzcount(pos)
           
    from a1
           join a2
            ON      a1
    .kunde a2.kunde                                                
         group by kunde
    )
    --  
    Update des  Gesamtumsatzes aus A3 in ein Tabelle A4  ???????
    update  GesamtUmsatzKunde  a4
     set a4
    Umsatz a3.GesamtUmsatz
     from A3
     where A4
    .Kunde=A3.kunde 

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... aus der SQL reference:
    The table name of a common table expression can only be referenced in the
    select-statement, INSERT statement, or CREATE VIEW statement that defines it.

    D*B

    PS: CTEs sind ohnehin eher ein Verwirr feature und nur in wenigene Fällen sinnvoll (recursive CTE). In allen anderen Fällen sind Views die bessere Lösung, oft sogar nested selects.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Es gaht auch so, da du jede CTE nur 1 x brauchst:

    update mytable
    set f1 = (select ... from (select ... from (select ... from ) a3) a2) a1)
    where ...
    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

Similar Threads

  1. SQL-Anweisung UPDATE auf CLOB-Spalte mit einer Zeichenfolge >32K
    By Joshua in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 24-11-15, 10:53
  2. Existenzprüfung einer Datei im IFS
    By dino in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 09-12-14, 14:40
  3. Antworten: 9
    Letzter Beitrag: 10-04-14, 15:18
  4. Warum wird eine Kopie einer log. Datei erstellt
    By hs in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 27-09-01, 11:25
  5. Sätze einer Datei zählen
    By Ursus in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 09-08-01, 07:59

Berechtigungen

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