Wenn auch mit 0 upgedatet werden darf, wenn keine Daten vorhanden sind dann gehts mit:

update v#vsta00
set vvswg0 = coalesce(select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr), 0)

Ansonsten fehlt dir noch die 2. Bedingung:


update v#vsta00
set vvswg0 = (select budget
from budms09 where kdnr = vskdnr AND 'BUD99' = vstnr)
where exists (Select budget from budms09 where vskdnr = kdnr AND 'BUD99' = vstnr)