emp_master と transfer の 2 つのテーブルがあります。emp_master の各 employee_id に対して、転送テーブルに複数のエントリが存在する可能性があります。date_of_tansfer に基づいて転送テーブルから最新のレコードを取得し、emp_master からのデータで表示したいと考えています。このようなクエリを作成しましたが、機能していません。「EMP.EMPLOYEE_ID: 無効な識別子」というエラーが表示されます。そのemployee_idでハードコードすると、1人の従業員の詳細を取得できます..しかし、すべての従業員のデータを取得するように変更するにはどうすればよいですか..
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)
)