Consulta em tabela SQL Server

30/01/2006

0

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


Jluiz Gsantos

Jluiz Gsantos

Responder

Posts

31/01/2006

Blumm

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


Responder

31/01/2006

Jluiz Gsantos

Obrigado pela dica, mas não funcionou. A consulta retorna com todos os movimentos e não o último movimentode cada produto.


Responder

31/01/2006

Emerson Nascimento

essa tabela não tem um identificador único para o registro?


Responder

31/01/2006

Jluiz Gsantos

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).


Responder

31/01/2006

Emerson Nascimento

uma consulta assim:

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...


Responder

01/02/2006

Jluiz Gsantos

Também não funcionou. Acho que só mesmo utilizando procedure. Em toda caso, obrigado pela tentativa.


Responder

01/02/2006

Jluiz Gsantos

Também não funcionou. Acho que só mesmo utilizando procedure. Em todo caso, obrigado pela tentativa.


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar