SELECT t1.ID, t1.ID_CARD, t1.DATE_OF
FROM CARD_SERIES_HISTORY t1
JOIN (
SELECT ID_CARD, MAX(DATE_OF) AS LAST_DATE
FROM CARD_SERIES_HISTORY
WHERE DATE_OF BETWEEN TO_DATE('01.07.2024 00:00:00', 'DD.MM.YYYY HH24:MI:SS')
AND TO_DATE('20.07.2024 00:00:00', 'DD.MM.YYYY HH24:MI:SS')
GROUP BY ID_CARD
) AS LAST_ENTRY ON t1.ID_CARD = LAST_ENTRY.ID_CARD AND t1.DATE_OF = LAST_ENTRY.LAST_DATE;
Попробуй выполнить этот запрос
По этому запросу я получаю значения всех ID_CARD последнего DATE_OF в определенном периоде
SELECT ID_CARD, MAX(DATE_OF)
FROM CARD_SERIES_HISTORY
WHERE DATE_OF BETWEEN TO_DATE('01.07.2024 00:00:00', 'DD.MM.YYYY HH24:MI:SS') AND TO_DATE('20.07.2024 00:00:00', 'DD.MM.YYYY HH24:MI:SS')
GROUP BY ID_CARD
Теперь мне нужно получить отдельно список ID у каждой этой записи