Fórum pegando o ultimo registro do produto na tabela de estoque #523426
19/06/2015
0
Assim, vai haver vários registros do mesmo produto.
O q eu preciso é pegar o último registro de cada produto, já ordenado por código do estoque, coletando a quantidade atual do estoque.
Alguém tem alguma ideia de sql q eu possa usar?
no meu sql sai assim:
códigoProd quantEstoque
1 100
1 90
1 30
2 100
2 80
e queria q saísse assim:
codigoProd quantEstoque
1 30
2 80
o sql q estou usando é este:
SELECT es.codproduto, es.quat_no_estoq AS final FROM estoque es order BY es.codproduto, es.codestoque
Desde Já Agradeço.
Cristiane
Curtir tópico
+ 0Post mais votado
23/06/2015
o sql e este:
[code]/select distinct prod.cod_produto, est.quat_no_estoq, PROD.nome_lista, PROD.unidade
from estoque est
inner join produto prod
on est.codproduto = prod.cod_produto
where est.codestoque = (select max(es.codestoque) from estoque es where prod.cod_produto = es.codproduto)
group by prod.cod_produto, est.quat_no_estoq, PROD.nome_lista, PROD.unidade
ORDER BY PROD.cod_produto[code]
Agradeço a vcs pela ajuda
Cristiane
Gostei + 1
Mais Posts
19/06/2015
Dorivan Sousa
SELECT es.codproduto, sum(es.quat_no_estoq) AS final FROM estoque es group BY es.codproduto order BY es.codproduto, 2
Gostei + 0
19/06/2015
Marisiana Battistella
Apenas com o código do produto e a quantidade, como você representou, não tem como saber qual é estoque atual.
Gostei + 0
19/06/2015
Marisiana Battistella
Apenas com o código do produto e a quantidade, como você representou, não tem como saber qual é estoque atual.
Gostei + 0
19/06/2015
Dorivan Sousa
mas digamos que nessa estrutura vc ponha a data de estoque teria q fazer uma manobra pra conseguir o estoque.
SELECT
distinct es1.codproduto,
(select es2.quat_no_estoq from estoque where es2.dt_es_atual = (select max(es3.dt_es_atual) from estoque es3 where es1.codproduto = es3.codproduto)
where es2.codproduto = es1.codproduto)
FROM estoque es1
sera que funciona?
Gostei + 0
22/06/2015
Marisiana Battistella
Considerando que na tabela de estoque exista um campo "data_atualização" para armazenar as datas de inserções dos registros, pode-se obter o último registro dessa forma:
select prod.idproduto,
est.qtdestoque,
MAX(est.data_atualizacao) as ultima_data
from estoque est
inner join produto prod
on est.idproduto = prod.idproduto
group by prod.idproduto,
est.qtdestoque
order by prod.idprodutoGostei + 0
22/06/2015
Marisiana Battistella
Considerando que na tabela de estoque exista um campo "data_atualização" para armazenar as datas de inserções dos registros, pode-se obter o último registro dessa forma:
select prod.idproduto,
est.qtdestoque,
MAX(est.data_atualizacao) as ultima_data
from estoque est
inner join produto prod
on est.idproduto = prod.idproduto
group by prod.idproduto,
est.qtdestoque
order by prod.idprodutoGostei + 0
22/06/2015
Dorivan Sousa
Gostei + 0
22/06/2015
Marisiana Battistella
Mas não tem necessidade de armazenar mais de um registro diário da movimentação do estoque de um mesmo produto, você pode totalizar tudo em um registro só.
Gostei + 0
22/06/2015
Marisiana Battistella
Gostei + 0
23/06/2015
Cristiane
data movimento,
hora movimento,
cod_produto
cod_empresa
cod_usuario
quantidade - movimentada
quant_est_final - quantidade de estoque atual após movimentação
Gostei + 0
23/06/2015
Marisiana Battistella
select prod.cod_produto,
est.quat_no_estoq,
prod.nome_lista,
prod.unidade,
MAX(est.codestoque) as codestoque
from estoque est
inner join produto prod
on est.codproduto = prod.cod_produto
group by prod.cod_produto,
est.quat_no_estoq,
prod.nome_lista,
prod.unidade
ORDER BY prod.cod_produtoIsso vai melhorar o problema da demora...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)