我有4個表格,我想檢索以下相關信息。從多個表中返回最大日期加入oracle
表:Staff_profile(STAFF_ID,STAFF_USERNAME,STAFF_NAME,STAFF_JOB_ID,STAFF_FACULTY_ID,STAFF_OFF_TEL,STAFF_EMAIL)- 擁有員工信息
表:RFMUSERHISTORY(uh_staff_id,UH_DATETIME)- 保存登錄歷史
表:RFMUSERROLEJOBMAP(role_id,job_id)- 映射角色2工作[這是因爲工作表pr E-存在,這個新的應用程序只挑選某些作業ID來對付自己的角色表
表:RFMUSERROLE(USERROLE_CODE,USERROLE_ID)- 擁有用戶角色信息
現在我想獲取最後一次登錄(userhistory中該用戶的最大日期)詳細信息,包括任何登錄的特定人員的角色和工作人員詳細信息。我遇到了我的代碼問題,最後只是使用UH_datetime命令爲該用戶選擇了所有記錄desc所以我可以選擇最新的最高記錄。
請任何幫助表示讚賞。 這裏是我當前的代碼(非常低效如上所述):
SELECT a.STAFF_ID, a.STAFF_USERNAME, a.STAFF_NAME, a.STAFF_JOB_ID, a.STAFF_FACULTY_ID,
a.STAFF_OFF_TEL, a.STAFF_EMAIL, to_CHAR(b.UH_DATETIME,'Dy DD-MM-YYYY HH24:MI:SS')
AS UH_DATETIME, e.USERROLE_CODE, e.USERROLE_ID
FROM STAFF_PROFILE a
LEFT JOIN RFMUSERHISTORY b ON STAFF_ID=b.uh_staff_id
LEFT JOIN RFMUSERROLEJOBMAP d ON a.STAFF_JOB_ID=d.job_id
LEFT JOIN RFMUSERROLE e ON d.role_id=e.userrole_id
WHERE STAFF_ID=:eid1 ORDER BY b.UH_DATETIME DESC
感謝,
LUHFLUH你問他們之前
感謝您的幫助。正如你所提到的,可以爲單個員工或所有員工的結果工作。新的教訓,非常感謝。 – luhfluh