Вы можете переписать его как:
update temp_msisdn_saldo
set saldo = ( select sum(saldo)
from (select a.msisdn as mdn, a.saldo
from temp_msisdn_saldo a
union all
select b.mdn as mdn, b.saldo
from temp_msisdn_saldo_yesterday b
) z
where z.mdn = temp_msisdn_saldo.msisdn
);
То же самое вы можете использовать CTE
:
with cte as (
<your query here>
)
update temp_msisdn_saldo
set saldo = (select sum(c.saldo) from cte c where c.mdn = temp_msisdn_saldo.msisdn);