Jump to content


Photo

Update Com Case-When E Duas Tabelas


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 FabioFPZ

FabioFPZ

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:Castelo - ES - Brasil

Posted 07/02/2012, 09:05

Bom dia.

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




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq