Tenho 3 tabelas:
- ESTPRO = Cadastro de Produto
- ESTLOC = Local de Estoque
- ESTHIS = Histórico do Produto(como se fosse um kardex)
Preciso trazer desta tabela ESTHIS, o registro referênte a última movimentação anterior a uma certa data que eu passo como parâmetro, ou seja, o max(ordem) de uma data que seja menor a data que eu passei no parâmetro.
SELECT DISTINCT ESTPRO.PRODUTO ,
ESTLOC.LOCAL ,
ESTHIS.SALDO ,
ESTHIS.CUSTOM
FROM ESTPRO , ESTLOC , ESTHIS
WHERE ESTPRO.PRODUTO = ESTLOC.PRODUTO AND
ESTHIS.PRODUTO = ESTPRO.PRODUTO AND
ESTHIS.LOCAL = ESTLOC.LOCAL AND
ESTHIS.DATA <= '30/04/2008' AND
ESTHIS.ORDEM = ( SELECT MAX ( A.ORDEM )
FROM ESTHIS A
WHERE DATA = ( SELECT MAX ( B.DATA )
FROM ESTHIS B
WHERE B.DATA <= '30/04/2008' AND
B.PRODUTO = ESTPRO.PRODUTO AND
B.LOCAL = ESTLOC.LOCAL ) AND
A.PRODUTO = ESTPRO.PRODUTO AND
A.LOCAL = ESTLOC.LOCAL AND
A.DATA = ESTHIS.DATA);
Obrigado,
Renato