2013-08-26 2 views
0

Как мне получить дату самой последней детской записи? В SQL я пытаюсь получить последние MOPNOTES.MOPNOTEDATE. Я также хочу только одну запись за MOPACTIVITY.MOPID. Любое направление было бы высоко оценено.Самая последняя детская запись с ключом

SELECT DISTINCT MOPACTIVITY.MOPID, 
MOPNOTES.MOPNOTEDATE 
FROM MOPUSER.MOPACTIVITY INNER JOIN MOPUSER.MOPNOTES ON MOPACTIVITY.MOPID=MOPNOTES.MOPID 
WHERE MOPACTIVITY.MOPEND BETWEEN TRUNC(SYSDATE-1) + INTERVAL '12:00' HOUR TO MINUTE AND TRUNC(SYSDATE) + INTERVAL '9:00' HOUR TO MINUTE 
AND UPPER(MOPACTIVITY.MOPSTATUS) = 'COMPLETE' 
AND UPPER(MOPACTIVITY.MOPNOTIFICATIONSENT) LIKE '%TRUE%' 
ORDER BY MOPACTIVITY.MOPID 

ответ

1

Вы ищете агрегатную функцию MAX на поле даты в сочетании с группой по на MOPID в группу все, как и идентификаторы вернуть последнюю дату. Отличный не работал для вас, потому что у вас были разные даты. Возвращая максимум, вы получаете 1 дату и 1 идентификатор, сгенерированный с помощью группы.

SELECT MOPACTIVITY.MOPID, Max(MOPNOTES.MOPNOTEDATE) 
FROM MOPUSER.MOPACTIVITY 
INNER JOIN MOPUSER.MOPNOTES 
    ON MOPACTIVITY.MOPID=MOPNOTES.MOPID 
WHERE MOPACTIVITY.MOPEND BETWEEN TRUNC(SYSDATE-1) + INTERVAL '12:00' HOUR TO MINUTE AND TRUNC(SYSDATE) + INTERVAL '9:00' HOUR TO MINUTE 
AND UPPER(MOPACTIVITY.MOPSTATUS) = 'COMPLETE' 
AND UPPER(MOPACTIVITY.MOPNOTIFICATIONSENT) LIKE '%TRUE%' 
GROUP BY MOPACTIVITY.MOPID 
ORDER BY MOPACTIVITY.MOPID 
+0

Спасибо @xQbert –

Смежные вопросы