› Fóruns › SQL e PL/SQL › help sintaxe/ select max › help sintaxe/ select max
@marciommr
Veja se você consegue pegar a ideia, estou considerando que existe apenas 1 custo medio por data para cada produto.
CREATE TABLE CUSTOS(
ID NUMBER
,PRODUTO_ID NUMBER
,CUSTOMEDIO NUMBER(8,2)
,DATACUSTO DATE
);
INSERT INTO CUSTOS(ID,PRODUTO_ID,CUSTOMEDIO,DATACUSTO) VALUES(1,1,2.5,'2012-11-01');
INSERT INTO CUSTOS(ID,PRODUTO_ID,CUSTOMEDIO,DATACUSTO) VALUES(2,1,2,'2012-11-07');
INSERT INTO CUSTOS(ID,PRODUTO_ID,CUSTOMEDIO,DATACUSTO) VALUES(3,2,5.75,'2012-11-02');
INSERT INTO CUSTOS(ID,PRODUTO_ID,CUSTOMEDIO,DATACUSTO) VALUES(3,2,6,'2012-11-06');
COMMIT;
SELECT ID,PRODUTO_ID,CUSTOMEDIO
FROM CUSTO MASTER
WHERE (MASTER.PRODUTO_ID,MASTER.DATACUSTO) IN(
SELECT DETAIL.PRODUTO_ID,MAX(DETAIL.DATACUSTO)
FROM CUSTOS DETAIL
GROUP BY DETAIL.PRODUTO_ID
)