DB2 Version 5.4 Update auf mehrere Sätze mit inner Select auf andere Datei

fuDDel

Mitglied
Hi,

ich möchte einen Auftragskopf UPDATEN wenn in den Positionen zum Auftrag bestimmte Bedingungen gegeben sind.
Diese Bedingungen können allerdings auf mehrere Sätze zutreffen und dementsprechend sollen dann alle Sätze ein Update bekommen.

Im folgenden die Dateien auf das Nötigste gekürzt

Auftragskopffelder:

AuftrNr.
KundenNr.
KW(Kalenderwoche)
VA(Versandart)
FB(Frachtbrief)
LS(Lieferschein)

Auftragspositionsfelder:

AuftrNrPos.
KundenNrPos.
Artikelgruppe
ArtikelNr.

Folgendes SQL hatte ich mir zusammengeschustert, welches folgende Meldung auswirft:
"Ergebnis der Anweisung enthält mehr als eine Zeile"

SQL:
UPDATE AUFTRAGSKOPF
SET VA = 10
WHERE AuftrNr = (SELECT AuftrNrPos FROM AUFTRAGSPOS
WHERE Artikelgruppe = 08
AND ARTIKEL = 15)

Die Fehlermeldung leuchtet mir auch ein, da das INNERSELECT mehrere Sätze zurück gibt, wenn es mehrere Positionen mit dem Artikel 15 gibt.
Jetzt komme ich aber einfach nicht drauf, wie ich das richtig miteinander verknüpfe, damit das SQL versteht was ich vorhabe.

Jemand ein Zaunpfahl mit dem man mich bitte erschlagen kann? Zur Not auch einen ganzen Zaun, falls ich einfach zu dämlich bin :)

Gruß

fuDDel
 
Zuletzt bearbeitet:
Hier kommt dein Zaunspfahl:
SQL:
UPDATE AUFTRAGSKOPF
  SET VA = 10
  WHERE AuftrNr IN(
    SELECT AuftrNrPos
      FROM AUFTRAGSPOS
      WHERE Artikelgruppe = 08
      AND ARTIKEL = 15)
 
Zurück