[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2004
    Beiträge
    178

    Update mit Inhalt aus anderer Tabelle

    Hallo,

    folgendes Problem:

    ich habe 2. Tabellen:

    A.TEILENR
    A.PREIS

    B.TEILENR
    B.PREIS
    B.CHECK

    jetzt möchte ich in Tabelle A das feld PREIS mit dem Wert von Tabelle B Updaten. Aber nur wenn B.CHECK = 0.

    Wie mache ich das ? irgendwie muss ich ja joinen ?

    Vielen Dank

    linguin

  2. #2
    Registriert seit
    Apr 2004
    Beiträge
    105
    PHP-Code:
    Update TableA as a
    Set a
    .Preis = (Select b.Preis
                   From TableB 
    as b
                   Where b
    .TeileNr a.TeileNr)
    Where exists (Select 1
                  From TableB 
    as b
                  Where b
    .TeileNr a.TeileNr
                    
    and b.Check 0

  3. #3
    Registriert seit
    Dec 2004
    Beiträge
    178
    danke woki.

    jetzt bekomme ich folgende meldung:

    Wahrscheinlich liefert die erste Subabfrage mehrere Zeilen zurück. Was so auch richtig ist. kann ich das limitieren ? ein "fetch first 1 rows" funktioniert nicht.

    Die Ergebnistabelle einer Anweisung SELECT INTO, einer Unterabfrage oder einer Unterauswahl einer Anweisung SET enthält mehr als eine Zeile. Es handelt sich um Fehlerart 2. Bei Fehlerart 1 wurde von einer Anweisung SELECT INTO versucht, mehr als eine Zeile zurückzugeben. Bei Fehlerart 2 wurde durch eine Unterauswahl eines Basisprädikats mehr als eine Zeile erstellt. Es ist nur eine Zeile zulässig. Fehlerbeseitigung: Die Auswahl so ändern, dass nur eine Ergebniszeile zurückgegeben wird, und die Anforderung wiederholen. Zur Verarbeitung mehrerer Ergebniszeilen müssen die Anweisungen DECLARE CURSOR, OPEN und FETCH verwendet werden. Für eine Unterabfrage können die Prädikate IN, EXISTS, ANY und ALL verwendet werden, um mehrere Ergebniszeilen zu verarbeiten. Wenn eine einzige Zeile erwartet wird, können Datenfehler, wie z. B. doppelte Zeilen, auftreten, die die Rückgabe mehrerer Zeilen bewirken.

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    wenn alle Preise gleich sind hilft distinct, sonst must du wohl selber entscheiden welches der richtige Satz ist
    Robi

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da hilft dann wohl eher MAX/MIN/AVG, je nach dem, welcher Preis der schönere ist.
    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
    Apr 2004
    Beiträge
    105
    Dann müßte es so aussehen:

    Code:
    Update TableA as a
    Set a.Preis = (Select min(b.Preis)   <- Wahlweise min/max/avg
                   From TableB as b
                   Where b.TeileNr = a.TeileNr
                    and b.Check = 0)
    Where exists (Select 1
                  From TableB as b
                  Where b.TeileNr = a.TeileNr
                    and b.Check = 0)

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Probiers einfach aus.
    Ggf. solltest du (wenn vorhanden), 0-Preise oder negative Preise ausschließen.
    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 Update aus zwei Dateien mit 3 Schlüsselfeldern
    By mk in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 13-07-12, 08:53
  2. ODBC update
    By synus in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 06-10-06, 15:38
  3. SQL Update über 2 i5 Systeme
    By daniel.ludwig in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 21-07-06, 12:41
  4. Update Syntax SQL
    By wuwu in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 18-07-06, 15:31
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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