Estou tendo problemas na hora de efetuar um update em uma tabela somando valores de outra tabela.
Tenho a tabela estinv que sera atualizada com soma de algum valores da tabela estmov.
o código é esse:
update estinven01001 inv
set inv.estinv = inv.estinv - (
/*aqui é testado se o retorno do somatorio tem ou não algum valor*/
case
(select sum(mov.quantidade) from estmovim01001 mov where mov.codigo = inv.codigo
and mov.entradasaida = 'E'
and mov.data between '01.01.2012' and '21.01.2012')
/*se nullo recebe 0*/
when null then
0
/*se houver algum valor ele é passado para o update*/
else
(select sum(mov.quantidade) from estmovim01001 mov where mov.codigo = inv.codigo
and mov.entradasaida = 'E'
and mov.data between '01.01.2012' and '21.01.2012')
end
)
where inv.data = '31.12.2011'
O problema é que ao rodar esse sql varias linhas recebem o valor null no campo estinv. Parece que não está sendo feito corretamente a comparação de valores do case.
Aguém pode me ajudar?
Grato