Mehrere Ergebnisse im Sub-Select?

elbino

Grünschnabel
Hallo,

ich hab da mal ein kleines Problemchen: Und zwar möchte ich eine Datenänderung durchführen, wobei die betroffenen Datensätze von einer Sub-Select-Anweisung abhängen. Ach, ich schreib einfach mal mein Statement hin:

Code:
update bksid.reisen
set bksid.reisen.gesperrt = 'j'
where bksid.reisen.drnr = (
   select bksid.zahlungen.drnr 
   from bksid.zahlungen
   where bksid.zahlungen.datumlb >= '2007-01-01' and 
         bksid.zahlungen.datumlb <= '2008-01-01' group by drnr
   );

Das group by schließt die doppelten Ergebnisse aus, so dass nur noch eindeutige Werte drnr rauskommen. Dennoch bekomme ich von DB2 (Vers. 9) den SQL-Code -811. Was hab ich jetzt genau falsch gemacht? Ich hoffe, ihr könnt mir helfen. Ich blick das nicht so ganz.

Gruß
elbino
 
Hi,

Du bekommst vielleicht eindeutige drnr, aber doch immer noch mehrere. "WHERE drnr = <liste_von_nummern>" funktioniert halt nicht. Versuch es mal mit IN:

SQL:
update bksid.reisen
set bksid.reisen.gesperrt = 'j'
where bksid.reisen.drnr IN (
   select bksid.zahlungen.drnr 
   from bksid.zahlungen
   where bksid.zahlungen.datumlb >= '2007-01-01' and 
         bksid.zahlungen.datumlb <= '2008-01-01' group by drnr
   );

LG
 
Zuletzt bearbeitet von einem Moderator:
Zurück