Hallo,
ich habe eine Tabelle FIRMA mit folgendem Aufbau:
FIRMA, LIEFERANTENSTATUS
100100, aktiv
100200, aktiv
100300, aktiv
...
und die Tabelle BESTELLUNG:
FIRMA, BESTELLDATUM
100100, 25.10.2016
100100, 12.12.2017
100200, 10.05.2016
100300, 02.04.2018
Ich möchte jetzt die Spalte LIEFERANTENSTATUS in der Tabelle FIRMA updaten.
Bei allen Firmen, deren letzte Bestellung < 01.01.2017 ist, soll die Spalte LIEFERANTENSTATUS abgeändert werden auf den Wert 'inaktiv'.
Ich habe das mit genau einer Firma hinbekommen:
update FIRMA
set LIEFERANTENSTATUS = 'inaktiv'
where
(select MAX(t1.BESTELLDATUM)
from BESTELLUNG t1 where t1.FIRMA = '100200'
group by FIRMA)
< '01.01.2017'
and firma = '100200'
Leider habe ich keine Ahnung, wie ich alle Datensätze der Tabelle FIRMA update.
Ich hätte es so probiert, aber da kommt eine Fehlermeldung:
Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird.
update FIRMA
set LIEFERANTENSTATUS = 'inaktiv'
where
(select MAX(t1.DATUM)
from BESTELLUNG t1 where t1.FIRMA = FIRMA
group by t1.FIRMA)
< '01.01.2017'
Ich hoffe, ich habe alles verständlich erklärt.
Kann mir da jemand helfen?
ich habe eine Tabelle FIRMA mit folgendem Aufbau:
FIRMA, LIEFERANTENSTATUS
100100, aktiv
100200, aktiv
100300, aktiv
...
und die Tabelle BESTELLUNG:
FIRMA, BESTELLDATUM
100100, 25.10.2016
100100, 12.12.2017
100200, 10.05.2016
100300, 02.04.2018
Ich möchte jetzt die Spalte LIEFERANTENSTATUS in der Tabelle FIRMA updaten.
Bei allen Firmen, deren letzte Bestellung < 01.01.2017 ist, soll die Spalte LIEFERANTENSTATUS abgeändert werden auf den Wert 'inaktiv'.
Ich habe das mit genau einer Firma hinbekommen:
update FIRMA
set LIEFERANTENSTATUS = 'inaktiv'
where
(select MAX(t1.BESTELLDATUM)
from BESTELLUNG t1 where t1.FIRMA = '100200'
group by FIRMA)
< '01.01.2017'
and firma = '100200'
Leider habe ich keine Ahnung, wie ich alle Datensätze der Tabelle FIRMA update.
Ich hätte es so probiert, aber da kommt eine Fehlermeldung:
Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird.
update FIRMA
set LIEFERANTENSTATUS = 'inaktiv'
where
(select MAX(t1.DATUM)
from BESTELLUNG t1 where t1.FIRMA = FIRMA
group by t1.FIRMA)
< '01.01.2017'
Ich hoffe, ich habe alles verständlich erklärt.
Kann mir da jemand helfen?