Hallo,
ich versuche mit dem folgendem SQL eine Spalte in einer Tabelle upzudaten.
Es handelt sich um eine Tabelle mit Historischen Werten (Eingeteilt nach Perioden). Es sollen die aktiven Kunden, d.h. die Kunden, welche in den letzten 12 Monaten (ausgehend von der aktuellen Periode) Umsatz hatten, gekenntzeichnet werden. (1 oder 0)
UPDATE TEMP_CUSTOMERSTATISTIC
SET ACTIVECUSTOMER12MONTH =
(select (case when sum(TURNOVER) > 0 then 1 else 0 end) from TEMP_CUSTOMERSTATISTIC cs, PERIODREFERENCES pr
WHERE
pr.period = (currentperiod) and
pr.periodlastyear <= cs.period
group by customerno)
WHERE
period = (currentperiod)-1
Wenn ich dieses SQL ausführen will, bekomme ich diese Fehlermeldung:
"Subquery returned more than one row"
Das eingebettete Select habe ich bereits getestet. Funktioniert auch soweit.
Das gesamte Update Statement funktioniert auch, wenn ich das group by customerno weg lasse. Dann updatet mir das Skript aber die komplette Spalte "ACTIVECUSTOMER12MONTH" mit 1.
Ich habe jetzt schon einiges ausprobiert, aber bisher leider ohne Erfolg.
Ach ja, der Vollständigkeithalber hier noch die DB auf der das Statement laufen soll:
IBM Redbrick (Informix)
Wenn mir jemand zum Lösen dieses Problems einen Tipp geben könnte, wäre das echt klasse!
Grüße
mahoini
ich versuche mit dem folgendem SQL eine Spalte in einer Tabelle upzudaten.
Es handelt sich um eine Tabelle mit Historischen Werten (Eingeteilt nach Perioden). Es sollen die aktiven Kunden, d.h. die Kunden, welche in den letzten 12 Monaten (ausgehend von der aktuellen Periode) Umsatz hatten, gekenntzeichnet werden. (1 oder 0)
UPDATE TEMP_CUSTOMERSTATISTIC
SET ACTIVECUSTOMER12MONTH =
(select (case when sum(TURNOVER) > 0 then 1 else 0 end) from TEMP_CUSTOMERSTATISTIC cs, PERIODREFERENCES pr
WHERE
pr.period = (currentperiod) and
pr.periodlastyear <= cs.period
group by customerno)
WHERE
period = (currentperiod)-1
Wenn ich dieses SQL ausführen will, bekomme ich diese Fehlermeldung:
"Subquery returned more than one row"
Das eingebettete Select habe ich bereits getestet. Funktioniert auch soweit.
Das gesamte Update Statement funktioniert auch, wenn ich das group by customerno weg lasse. Dann updatet mir das Skript aber die komplette Spalte "ACTIVECUSTOMER12MONTH" mit 1.
Ich habe jetzt schon einiges ausprobiert, aber bisher leider ohne Erfolg.
Ach ja, der Vollständigkeithalber hier noch die DB auf der das Statement laufen soll:
IBM Redbrick (Informix)
Wenn mir jemand zum Lösen dieses Problems einen Tipp geben könnte, wäre das echt klasse!
Grüße
mahoini
Comment