Select com retorno do ultimo valor com a ultima data de registro

Bom tarde pessoal, estou com um probleminha que eu acredito que seja bem simples, porem nao estou conseguindo resolver, tenho esse select:

SELECT
    MAX(DTATUAL) AS "MAIOR DATA",
    CUS.CODPROD,
    CUS.CUSMEDICM
FROM 
    TGFCUS CUS
WHERE 
    CODEMP = 6
GROUP BY
    DTATUAL,
    CUS.CODPROD,
    CUS.CUSMEDICM
ORDER BY 
    CUS.CODPROD

e o resultado dele é o seguinte:

1 28/06/2017 100 2754,32
2 01/01/1900 101 0
3 28/06/2017 101 314,3
4 17/07/2018 101 378,2982
5 15/10/2018 101 352,0262
6 28/11/2018 101 328,6831
7 04/02/2019 101 334,6531
8 01/01/1900 102 0
9 28/06/2017 102 293,93
10 06/07/2017 102 283,8291
11 04/10/2017 102 273,079
12 05/02/2018 102 293,6115
13 17/05/2018 102 293,174
14 17/07/2018 102 316,4573

podem ver que esta repitindo o código dos produtos, e eu preciso que traga o ultimo registro (DATA) e valor apenas.

Podem me ajudar?

algo tipo:

select CUS2.* from (
SELECT
    CUS.CODPROD,
    MAX(DTATUAL) AS "MAIOR_DATA"
FROM 
    TGFCUS CUS
WHERE 
    CUS.CODEMP = 6
GROUP BY
    CUS.CODPROD
) as x 
join TGFCUS CUS2 on (CUS2.CODPROD = x.CODPROD and CUS2.DTATUAL = x.MAIOR_DATA)

Mais ou menos isso, só que agora repete a DTATUAL.

SELECT CUS2.DTATUAL,CUS2.CODPROD,CUS2.CUSMEDICM FROM (
SELECT
CUS.CODPROD,
MAX(DTATUAL) AS “MAIOR_DATA”
FROM
TGFCUS CUS
WHERE
CUS.CODEMP = 6
GROUP BY
CUS.CODPROD

) X
JOIN TGFCUS CUS2 on (CUS2.CODPROD = X.CODPROD and CUS2.DTATUAL = X.MAIOR_DATA)

ORDER BY
CUS2.CODPROD

1 28/06/2017 100 2190
2 28/06/2017 100 2754,32
3 04/02/2019 101 334,6531
4 18/01/2019 102 363,6755
5 28/06/2017 103 507,11
6 28/06/2017 103 532,49
7 04/10/2018 104 314,1797
8 04/02/2019 105 284,1018
9 04/02/2019 106 203,4355
10 18/01/2019 107 254,9071
11 28/06/2017 108 2754,32
12 28/06/2017 108 2190
13 12/01/2019 109 331,0629

Mas então vc tem mais de um valor pro mesmo dia.
Em teoria, como vc quer tratar isso? qual que valerá?
Acredito que lhe falta a informação do time deste valor, já que pode ter mais d um pr dia.

Pior que não, temos apenas um valor para dias diferentes, na teoria quero que o select traga o ultimo preço de custo que foi cadastrado no sistema, ex:
produto 101 data 16/01/2019 preço 150,00
produto 101 data 05/01/2019 preço 180,00

entao tem que retornar o valor da ultima data 16/01/2019 150,00

ok, blz… mas isso n ajuda
Qual critério vc vai usar pra decidir qual é o último se a data é a mesma?

Manda a estrutura das tabelas envolvidas nessa consulta q vc precisa fazer.

A data não repete, esse erro de repetir esta no select. Mais nao consigo identificar.

Boa tarde, seria isso?

CODPROD NUMBER(10) N
CODEMP NUMBER(5) N
DTATUAL DATE N
CODLOCAL NUMBER(10) N 0
CONTROLE VARCHAR2(11) N ’ ’
CUSMEDICM FLOAT N 0
CUSSEMICM FLOAT N 0
CUSREP FLOAT N 0
CUSVARIAVEL FLOAT N 0
CUSGER FLOAT N 0
CUSMED FLOAT N 0
VLRVENDAFIXO FLOAT Y
ENTRADACOMICMS FLOAT Y
ENTRADASEMICMS FLOAT Y
QTDNEG FLOAT Y
AUTOMATICO VARCHAR2(1) N ‘S’
ALTPRECO VARCHAR2(1) Y
NUNOTA NUMBER(10) N 0
SEQUENCIA NUMBER(5) N 0
TOTALCOMICMS FLOAT Y
TOTALSEMICMS FLOAT Y
TOTALCOMICMSANT FLOAT Y
TOTALSEMICMSANT FLOAT Y
CUSMEDCALC CHAR(1) N ‘N’
RECARGA CHAR(1) N ‘N’
QTDNEGGER FLOAT Y
PROCESSO VARCHAR2(255) Y