我有兩個表emp_master和傳輸。對於emp_master中的每個employee_id ,轉移表中可以有多個條目。我想根據date_of_tansfer從轉移表中獲取最新的 記錄,並使用 emp_master中的數據顯示它。我寫了一個這樣的查詢不起作用。我收到「EMP.EMPLOYEE_ID:無效標識符」錯誤 。我可以得到單個員工的詳細信息,如果我與EMPLOYEE_ID硬編碼 ..但我怎麼可以修改它來獲取數據,所有的員工..在左連接中使用嵌套查詢
select distinct emp.employee_id,trnsf.OU
from emp_master emp
left join (select * from (select * from transfer where employee_id = emp.employee_id
and date_of_transfer <= SYSDATE order by date_of_transfer desc) where rownum = 1) trnsfr
on trnsfr.EMPLOYEE_ID = emp.employee_id
CREATE TABLE "EMP_MASTER"
("EMPLOYEE_ID" NUMBER(10,0),
"FIRST_NAME" VARCHAR2(30 BYTE),
"MIDDLE_NAME" VARCHAR2(30 BYTE),
"SURNAME" VARCHAR2(30 BYTE),
)
CREATE TABLE "TRANSFER"
( "EMPLOYEE_SR_NO" NUMBER,
"EMPLOYEE_ID" NUMBER(10,0),
"DATE_OF_TRANSFER" DATE,
"OU" VARCHAR2(30 BYTE)
)
我試了一下.... BU我得到FROM關鍵字錯誤未找到 SELECT *,ROW_NUMBER()OVER(ORDER由date_of_transfer desc)作爲rn從hris_transfer_dtl 其中employee_id = emp.employee_id和date_of_transfer <= SYSDATE ...此查詢本身給出了該錯誤... – Andromeda
以上錯誤是因爲* ..我添加別名。*和我得到它工作....但整個查詢我得到相同的錯誤emp.Employee_id無效的標識符.. – Andromeda
@Jasim:我修正了錯誤。沒有*的前綴,並且'employee_id = emp.employee_id'不是必需的,因爲無論如何它都是連接條件的一部分。 –