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