Montar tabela de movimentação
Boa Tarde
Tenho a tabela chamada de tmp_est1:
CD_PRODUTO ANO MÊS ANO_MES SAIDAS ENTRADAS
18117 2009 10 2009/10 2 4
18117 2009 11 2009/11 5 40
18117 2009 12 2009/12 5 0
Esta tabela é criada através de uma consulta em uma tabela com a movimentação do produto por dia.
O que preciso é criar uma consulta que retorne o que tenho em estoque por mês.
Ou seja:
CD_PRODUTO ANO MÊS ANO_MES EST.ANTERIOR SAIDAS ENTRADA SALDO
18117 2009 10 2009/10 0 2 4 2
18117 2009 11 2009/11 2 5 40 37
18117 2009 12 2009/12 37 5 0 32
O que já tentei fazer e deu certo.. porem se tiver mais que 3 messes terei que mudar o sql, sem contar quando chegar no mes 1 o que vou fazer...(coisa de amador.. heheh) :
select
a.cd_produto,
a.ano,
a.mes,
a.ano_mes,
(select (entrada - saida) from tmp_est1 where ano = a.ano and mes = a.mes -1)
+ coalesce((select (entrada - saida) from tmp_est1 where ano = a.ano and mes = a.mes -2),0),
a.saida,
a.entrada,
((a.entrada - a.saida) + coalesce((select (entrada - saida) from tmp_est1 where ano = a.ano and mes = a.mes -1),0)
+ coalesce((select (entrada - saida) from tmp_est1 where ano = a.ano and mes = a.mes -2),0))
from tmp_est1 a
Existe outro meio de fazer isso, criando variáveis, ou seja algo mais simples..?
Deste já, agradeço a ajuda.
Mauricio
Discussão (3)
Carregando comentários...