GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Retornar última data no select

Boa noite pessoa,
Preciso de uma ajuda.
Tenho este select :

SELECT TO_CHAR(CAB.DTNEG,‘DD/MM/YYYY’) AS “DTA EMISSÃO”,CAB.DTENTSAI AS “ÚLTIMA COMPRA”, ITE.CODPROD AS “CÓDIGO”,
CAB.NUMNOTA AS “Nº NOTA”
FROM
TGFITE ITE,
TGFPRO PRO,
TGFCAB CAB,
TGFPAR PAR

WHERE
ITE.CODPROD = PRO.CODPROD
AND CAB.NUNOTA = ITE.NUNOTA
AND PAR.CODPARC = CAB.CODPARC
AND CAB.CODTIPOPER IN (12,47,138)
AND PRO.CODPROD = 30001052

que ao executar, ele apresenta 6 registros na tabela conforme abaixo:

DTA EMISSÃO ÚLTIMA COMPRA CÓDIGO Nº NOTA
01/07/2021 10/07/2021 00:00 30001052 1723
21/07/2021 28/07/2021 00:00 30001052 1781
10/08/2021 19/08/2021 00:00 30001052 1832
30/09/2021 13/10/2021 00:00 30001052 1995
19/10/2021 27/10/2021 00:00 30001052 2027
07/12/2021 21/12/2021 00:00 30001052 2171

Porém eu queria que o select apresenta-se apenas a última data mais atualizada de compra, ou seja a coluna CAB.DTENTSAI AS “ÚLTIMA COMPRA”, que no exemplo, teria que apresentar apenas o registro:

DTA EMISSÃO ÚLTIMA COMPRA CÓDIGO Nº NOTA
07/12/2021 21/12/2021 00:00 30001052 2171

Como eu finalizo o select para apresentar o que eu quero, como mencionei?

vc vai precisar fazer uma subquery, aonde vc vai fazer um agrupamento utilizando max no campo CAB.DTENTSAI, sua sub query vai ter somente 3 campos, CAB.DTNEG, CAB.DTENTSAI, ITE.CODPROD, depois vc vai fazer uma query principal que vai conter todos os campos que vc precisa, fazendo um join na sub query unindo pelo 3 campos da sub query, desse jeito resolve.

//