Pular para o conteúdo

Fóruns SQL e PL/SQL help sintaxe/ select max help sintaxe/ select max

#104759
rman
Participante

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