Consulta em tabela SQL Server
Pessoal,
Meu problema é o seguinte. Tenho uma tabela que armazena os movimentos de estoque: MovEstoque. Esta tabela contém, entre outros, os campos CodMov (código do movimento), CodProd (código do produto), DataMov (data do movimento), QdeMov (quantidade do movimento) e CustoUnit (Custo unitário). Quero efetuar uma consulta que me retorne o último movimento de cada produto.
Alguém pode me ajudar?
Obrigado
JLuiz
Meu problema é o seguinte. Tenho uma tabela que armazena os movimentos de estoque: MovEstoque. Esta tabela contém, entre outros, os campos CodMov (código do movimento), CodProd (código do produto), DataMov (data do movimento), QdeMov (quantidade do movimento) e CustoUnit (Custo unitário). Quero efetuar uma consulta que me retorne o último movimento de cada produto.
Alguém pode me ajudar?
Obrigado
JLuiz
Jluiz Gsantos
Curtidas 0
Respostas
Blumm
30/01/2006
Olá JLuiz
Tente a seguinte consulta:
Select * From MovEstoque A
Where Exists
(Select 1 From MovEstoque B
Where A.CodProd = B.CodProd
And B.DatMov = (Select Max(DatMov)
From MovEstoque C
Where A.CodProd = C.CodProd)
Order by CodProd
Um Abraço
Tente a seguinte consulta:
Select * From MovEstoque A
Where Exists
(Select 1 From MovEstoque B
Where A.CodProd = B.CodProd
And B.DatMov = (Select Max(DatMov)
From MovEstoque C
Where A.CodProd = C.CodProd)
Order by CodProd
Um Abraço
GOSTEI 0
Jluiz Gsantos
30/01/2006
Obrigado pela dica, mas não funcionou. A consulta retorna com todos os movimentos e não o último movimentode cada produto.
GOSTEI 0
Emerson Nascimento
30/01/2006
essa tabela não tem um identificador único para o registro?
GOSTEI 0
Jluiz Gsantos
30/01/2006
Infelizmente não. É justamente o que está dificultando a pesquisa. O que poderia servir como identificador único é a utilização de 2 campos: um identifica o movimento propriamente dito (ChvMov) e o outro o item dentro do movimento (ItemMov).
GOSTEI 0
Emerson Nascimento
30/01/2006
uma consulta assim:
retornaria os últimos movimentos de um determinado produto...
mas para retornar o último seria melhor se o registro tivesse um campo ID...
Select * From MovEstoque A Where A.DatMov = (Select max(B.DatMov) From MovEstoque B Where B.CodProd = A.CodProd) Order by A.CodProd
retornaria os últimos movimentos de um determinado produto...
mas para retornar o último seria melhor se o registro tivesse um campo ID...
GOSTEI 0
Jluiz Gsantos
30/01/2006
Também não funcionou. Acho que só mesmo utilizando procedure. Em toda caso, obrigado pela tentativa.
GOSTEI 0
Jluiz Gsantos
30/01/2006
Também não funcionou. Acho que só mesmo utilizando procedure. Em todo caso, obrigado pela tentativa.
GOSTEI 0