2013-08-26 128 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

你通過在MOPID將所有喜歡的IDS尋找在日期字段MAX聚合函數結合一組,並返回最近的日期。因爲你有不同的日期,所以你不在爲你工作。通過僅返回最大值,您可以獲得1個日期,並使用組生成1個ID。

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 –