[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hallo Birgitta,

    das war des Rätsels Lösung.

    update mk/lprm01p A set a.LVAL=
    ( select distinct b.lval from mk/lprm01pold B
    where a.lpgm = b.lpgm
    and a.llnr = b.llnr
    and a.lent = b.lent )


    where exists
    (select c.lpgm , c.llnr, c.lent
    from mk/lprm01pold c
    where a.lpgm = c.lpgm
    and a.llnr = c.llnr
    and a.lent = c.lent )



    Vielen Dank euch beiden für die Hilfe

    und viele Grüße
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das mit dem DISTINCT solltest du aber nicht so als Grundsatz verstehen, da du damit nur das Problem mehrerer Zeilen für genau diesen einen Fall ausschließt.

    Aufgrund der Where-Klausel kann es trotzdem zu mehreren Sätzen kommen, wenn die Beziehung nicht EINDEUTIG mit einer 1:1-Beziehung vorhanden ist.
    Deine Schlüssel vermuten da eher eine 1:N-Beziehung.
    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
    Jan 2001
    Beiträge
    850
    Nochmals DANKE

    Habe das ganze auch ohne Distinct laufen lassen,
    und es klappt.

    Gruss Michael

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

    Talking Respekt

    Also ich habe gedacht das ich gut bin was SQL angeht, aber DB2 hatte ich immer Schwierigkeiten, bin halt nen MS SQL Programer ;-)

    Aber wenn ich sowas lese muss ich echt sagen
    RESPEKT

    da kann selbst ich was lernen.

    schönen Tag

    Martin

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    MS SQL kann sowas aber auch.
    Es kommt da weniger auf die Syntax und Funktionen an sondern mehr auf den Lösungsansatz.
    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
    Nov 2007
    Beiträge
    6

    Wink MS Sql

    Das stimmt,
    aber am SQL Server würde ich das ganz anders machen

    in etwa so:

    UPDATE Tabelle A
    SET A.sdsd=B.sdsd, A.afaf=B.afaf
    FROM Tabelle A LEFT JOIN Tabelle2 B
    ON a.s = B.s and A.f = B.f and A.i =B.i
    WHERE ....

    so würde ich das da machen, und mache ich auch :-)

    bis dann
    Martin

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.402
    UPDATE ... SET ... FROM ... ???

    Sachen gibts ...

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von MWendel Beitrag anzeigen
    Das stimmt,
    aber am SQL Server würde ich das ganz anders machen

    in etwa so:

    UPDATE Tabelle A
    SET A.sdsd=B.sdsd, A.afaf=B.afaf
    FROM Tabelle A LEFT JOIN Tabelle2 B
    ON a.s = B.s and A.f = B.f and A.i =B.i
    WHERE ....

    so würde ich das da machen, und mache ich auch :-)

    bis dann
    Martin
    Das funktioniert auf der DB2 for i?!
    Ich denke doch nicht, da es nicht SQL Standard ist.

    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

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das ist MS-SQL-Server, dir hatten schon immer eine eigene Syntax, allerdings SQL99-Standard und neuer kann der trotzdem.
    Manches kommt halt über MS-Access da rein, daher sind z.T. auch VBA-Funktionen verwendbar (mid() statt substr() dateserial() u.v.m.).
    Aber halt nicht Standard.
    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

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das ist MS-SQL-Server, dir hatten schon immer eine eigene Syntax, allerdings SQL99-Standard und neuer kann der trotzdem.
    Manches kommt halt über MS-Access da rein, daher sind z.T. auch VBA-Funktionen verwendbar (mid() statt substr() dateserial() u.v.m.).
    Aber halt nicht Standard.
    Soweit zum Thema Standard!
    Aktuell gibt es tatsächlich nur eine einzige Datenbank, die den aktuellen Standard komplett abdeckt, auch wenn einiges noch nicht ganz ausgereift ist. Und das ist die DB2 for i!

    Alle anderen Datenbanken decken den Standard zu wesentlich geringeren Teilen ab, so ist auch die große Oracle nur bei etwas über 80%. (Man braucht nur in die Referenz zu schauen, was noch nicht abgedeckt ist).

    ... das heißt jedoch nicht, dass die Datenbanken keine Features abdecken düfen, sie nicht standardkonform sind. Diese Features können nur in anderen Datenbanken nicht eingesetzt 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

Similar Threads

  1. SQL Update über 3 Dateien
    By Bobou in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 22-11-06, 08:26
  2. SQL Update 2 Dateien
    By moskito in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 30-08-06, 17:30
  3. SQL UPDATE, verknüpfung zweier Dateien
    By desti82 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-07-06, 15:25
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. sql update mit 2 verknüpften dateien
    By juniorprog in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 03-02-06, 11:17

Berechtigungen

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