Tobse77
20-02-09, 08:03
Hallo zusammen,
möchte eine Datei in Abhängigkeit einer anderen Datei nur dann updaten, wenn dort der enstprechende Satz gefunden wurde:
update v#vsta00
set vvswg0 = case when (select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr) <> 0 then
(select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr) else vvswg0 end,
...
where exists (Select budget from budms09 where vskdnr = kdnr)
;;
Ursprünglich dachte ich, dass ich mir die Case-Anweisung sparen kann, weil ich ja in den Where-Bedingungen mit exists auf die Existenz der Subselect-Sätze abfrage. Dies führt jedoch stets zu der Meldung, dass keine NULL-Werte in das Feld vvswg0 geschrieben werden dürfen.
Meine Case-Anweisung ist allerdings auch nicht ganz richtig, da das Feld Budget durchaus den Wert 0 haben darf, welcher hierüber jedoch auch abgefangen wird.
Mit NOT NULL anstelle von <> 0 hab ich es schon versucht - Syntaxfehler.
Wer weiß, wie es funktioniert?
-- Tobias
möchte eine Datei in Abhängigkeit einer anderen Datei nur dann updaten, wenn dort der enstprechende Satz gefunden wurde:
update v#vsta00
set vvswg0 = case when (select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr) <> 0 then
(select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr) else vvswg0 end,
...
where exists (Select budget from budms09 where vskdnr = kdnr)
;;
Ursprünglich dachte ich, dass ich mir die Case-Anweisung sparen kann, weil ich ja in den Where-Bedingungen mit exists auf die Existenz der Subselect-Sätze abfrage. Dies führt jedoch stets zu der Meldung, dass keine NULL-Werte in das Feld vvswg0 geschrieben werden dürfen.
Meine Case-Anweisung ist allerdings auch nicht ganz richtig, da das Feld Budget durchaus den Wert 0 haben darf, welcher hierüber jedoch auch abgefangen wird.
Mit NOT NULL anstelle von <> 0 hab ich es schon versucht - Syntaxfehler.
Wer weiß, wie es funktioniert?
-- Tobias