[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.945
    Hallo,

    Du musst in Deinem Subselect nochmal mit die beiden Artikelstämme verknüpfen über den eindeutigen Schlüssel (vermutlich Artikel-Nr.) verknüpfen.

    Etwa so:
    PHP-Code:
    update atstam a
       set a
    .arthg '007' 
       
    where exists (select b.firnrb.artnr01b.artnr02,  b.arthgartlif.lifnr 
                       from atstam b
    artlif 
                       where     b
    .firnr      artlif.firnr 
                             
    and b.artnr01    artlif.artnr01 
                             
    and b.artnr02   <> 'XYZ' 
                             
    and artlif.lifnr '0815' 
                             
    and a.artnr01    b.artnr01
    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

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.433
    Hallo !

    Deine Unterabfrage liefert vermutlich immer das gleiche Ergebnis, egal welchen Datensatz der UPDATE gerade bearbeitet. Aber wenn du in deiner SQL-Anweisung

    select atstam.firnr, atstam.artnr01, atstam.artnr02, atstam.arthg, artlif.lifnr from atstam, artlif

    durch

    select * from artlif

    ersetzt, dann kannst du mit deinen Bedingungen einen Bezug zum aktuellen Datensatz im UPDATE herstellen und dann sollte es gehen.

    Viele Grüße
    Jürgen

  3. #3
    Registriert seit
    Nov 2004
    Beiträge
    6

    Last but not least

    Zitat Zitat von Pikachu
    Hallo !

    Deine Unterabfrage liefert vermutlich immer das gleiche Ergebnis, egal welchen Datensatz der UPDATE gerade bearbeitet. Aber wenn du in deiner SQL-Anweisung

    select atstam.firnr, atstam.artnr01, atstam.artnr02, atstam.arthg, artlif.lifnr from atstam, artlif

    durch

    select * from artlif

    ersetzt, dann kannst du mit deinen Bedingungen einen Bezug zum aktuellen Datensatz im UPDATE herstellen und dann sollte es gehen.

    Viele Grüße
    Jürgen
    Auch Dir ein herzliches Danke schön.

    Auch Dein Statement hat mir weitergeholfen, so dass ich mir jetzt eine der beiden Varianten aussuchen kann ;-)

    Ich hätte wahrscheinlich noch Stunden dafür gebraucht.

  4. #4
    Registriert seit
    Nov 2004
    Beiträge
    6

    Vielen Dank

    Zitat Zitat von B.Hauser
    Hallo,

    Du musst in Deinem Subselect nochmal mit die beiden Artikelstämme verknüpfen über den eindeutigen Schlüssel (vermutlich Artikel-Nr.) verknüpfen.

    Etwa so:
    PHP-Code:
    update atstam a
    set a
    .arthg '007' 
    where exists (select b.firnrb.artnr01b.artnr02b.arthgartlif.lifnr 
    from atstam b
    artlif 
    where b
    .firnr artlif.firnr 
    and b.artnr01 artlif.artnr01 
    and b.artnr02 <> 'XYZ' 
    and artlif.lifnr '0815' 
    and a.artnr01 b.artnr01
    Birgitta
    Vielen Dank auch Dir.

    Leider hat Dein Statement bei mir nicht funktioniert, aber komme jetzt trotzdem weiter.

Similar Threads

  1. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 22:48
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 15:53
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43
  4. SQL Statement
    By juergenkemeter in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 15-11-04, 13:15
  5. SQL Statement
    By Pia in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 18-04-02, 16:24

Berechtigungen

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