SELECT action_name
,effective_date
,Emp_Number AS "Emp_#"
,emp_name
,Job_Code
,Job_Code_Old
,Job_Title
,Job_Title_Old
,Status
,Status_Old
,Dept
,Dept_old
,Manager
,Manager_old
,Location_Code
,Location_Code_old
,Location_Desc
,Location_Desc_old
,FTE
,FTE_old
,Assignment_Last_Update_Date
,Assignment_Last_Updated_By
,Number_days_since_last_updated AS "#_days_since_last_updated"
FROM (
SELECT PAB.ACTION_NAME AS Action_Name
,TO_CHAR(PAAM.EFFECTIVE_START_DATE,'MM/DD/YYYY') AS
Effective_Date
,PAPF.PERSON_NUMBER AS Emp_Number
,PPNF.FULL_NAME||' '||PPNF.MIDDLE_NAMES AS Emp_Name
,PJ.JOB_CODE AS Job_Code
,(select PJ1.JOB_CODE
FROM per_all_assignments_m paam1
,PER_JOBS PJ1
WHERE paam1.assignment_id = paam.assignment_id
and paam1.effective_end_date =
paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE = 'E'
AND PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
and paam1.job_id = PJ1.job_id
and TRUNC(SYSDATE) BETWEEN PJ1.effective_start_date
and PJ1.effective_end_date
--and paam1.effective_start_date BETWEEN
PJ1.effective_start_date and PJ1.effective_end_date
) AS Job_Code_Old
,PJ.NAME AS Job_Title
,(select PJ1.NAME
FROM per_all_assignments_m paam1
,PER_JOBS PJ1
WHERE paam1.assignment_id = paam.assignment_id
and paam1.effective_end_date =
paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE = 'E'
AND PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
and paam1.job_id = PJ1.job_id
and TRUNC(SYSDATE) BETWEEN PJ1.effective_start_date
and PJ1.effective_end_date
--and paam.effective_start_date BETWEEN
PJ1.effective_start_date and PJ1.effective_end_date
) AS Job_Title_Old
,(SELECT MEANING
FROM HR_LOOKUPS HL
WHERE
HL.LOOKUP_TYPE ='EMP_CAT'
AND HL.LOOKUP_CODE
=PAAM.EMPLOYMENT_CATEGORY
AND TRUNC(SYSDATE)
BETWEEN HL.START_DATE_ACTIVE AND HL.END_DATE_ACTIVE
) AS Status
,(SELECT MEANING
FROM per_all_assignments_m paam1
,HR_LOOKUPS HL1
WHERE paam1.assignment_id =
paam.assignment_id
and
paam1.effective_end_date = paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE
= 'E'
AND
PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
and
PAAM1.EMPLOYMENT_CATEGORY = HL1.LOOKUP_CODE
and HL1.LOOKUP_TYPE
='EMP_CAT'
--AND TRUNC(SYSDATE)
BETWEEN HL1.START_DATE_ACTIVE AND HL1.END_DATE_ACTIVE
AND
paam1.effective_start_date BETWEEN HL1.START_DATE_ACTIVE AND HL1.END_DATE_ACTIVE
) AS Status_Old
,(SELECT HOUFT.NAME
FROM
HR_ORGANIZATION_UNITS_F_TL HOUFT
,HR_ALL_ORGANIZATION_UNIT
S_F HAOUF
,HR_ORG_UNIT_CLASSIFICATI
ONS_F HOUCF
WHERE
HOUFT.ORGANIZATION_ID =
PAAM.ORGANIZATION_ID
AND TRUNC(SYSDATE)
BETWEEN HOUFT.EFFECTIVE_START_DATE AND HOUFT.EFFECTIVE_END_DATE
AND HOUFT.ORGANIZATION_ID
= HAOUF.ORGANIZATION_ID
AND
HOUFT.EFFECTIVE_START_DATE = HAOUF.EFFECTIVE_START_DATE
AND
HOUFT.EFFECTIVE_END_DATE = HAOUF.EFFECTIVE_END_DATE
AND HAOUF.ORGANIZATION_ID
= HOUCF.ORGANIZATION_ID
AND
HAOUF.EFFECTIVE_START_DATE BETWEEN HOUCF.EFFECTIVE_START_DATE AND
HOUCF.EFFECTIVE_END_DATE
AND HOUFT.LANGUAGE='US'
AND
HOUCF.CLASSIFICATION_CODE = 'DEPARTMENT'
) AS Dept
,(SELECT HOUFT.NAME
FROM
per_all_assignments_m paam1
,HR_ORGANIZATION_UNITS_F_
TL HOUFT
,HR_ALL_ORGANIZATION_UNIT
S_F HAOUF
,HR_ORG_UNIT_CLASSIFICATI
ONS_F HOUCF
WHERE paam1.assignment_id
= paam.assignment_id
AND
paam1.effective_end_date = paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE
= 'E'
AND
PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAAM1.ORGANIZATION_ID
= HOUFT.ORGANIZATION_ID
AND
paam1.effective_start_date BETWEEN HOUFT.EFFECTIVE_START_DATE AND
HOUFT.EFFECTIVE_END_DATE
AND HOUFT.ORGANIZATION_ID
= HAOUF.ORGANIZATION_ID
AND
HOUFT.EFFECTIVE_START_DATE = HAOUF.EFFECTIVE_START_DATE
AND
HOUFT.EFFECTIVE_END_DATE = HAOUF.EFFECTIVE_END_DATE
AND HAOUF.ORGANIZATION_ID
= HOUCF.ORGANIZATION_ID
AND
HAOUF.EFFECTIVE_START_DATE BETWEEN HOUCF.EFFECTIVE_START_DATE AND
HOUCF.EFFECTIVE_END_DATE
AND HOUFT.LANGUAGE='US'
AND
HOUCF.CLASSIFICATION_CODE = 'DEPARTMENT'
) AS Dept_Old
,PPNF_MGR.FULL_NAME AS Manager
,(select DISTINCT PPNF_MGR1.full_name
from per_all_assignments_m paam1
,PER_ASSIGNMENT_SUPERVISORS_F PASF1
,PER_PERSON_NAMES_F PPNF_MGR1
where paam1.assignment_id = paam.assignment_id
and paam1.effective_end_date =
paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE = 'E'
AND PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
and paam1.person_id = PASF1.person_id
and paam1.assignment_id = PASF1.assignment_id
--and paam1.ACTION_OCCURRENCE_ID =
PASF1.ACTION_OCCURRENCE_ID
--and PASF1.effective_end_date =
paam.effective_start_date-1
AND PASF1.MANAGER_ID = PPNF_MGR1.PERSON_ID
AND PPNF_MGR1.NAME_TYPE = 'GLOBAL'
AND paam1.effective_start_date BETWEEN
PASF1.EFFECTIVE_START_DATE AND PASF1.EFFECTIVE_END_DATE
AND paam1.effective_start_date BETWEEN
PPNF_MGR1.EFFECTIVE_START_DATE AND PPNF_MGR1.EFFECTIVE_END_DATE
) AS Manager_Old
,PLDF.ATTRIBUTE1 AS Location_Code
,(select PLDF1.ATTRIBUTE1
FROM per_all_assignments_m paam1
,PER_LOCATION_DETAILS_F PLDF1
WHERE paam1.assignment_id = paam.assignment_id
and paam1.effective_end_date =
paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE = 'E'
AND PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
and paam1.location_id = paam.location_id
and paam1.location_id = PLDF1.location_id
AND paam1.effective_start_date BETWEEN
PLDF1.EFFECTIVE_START_DATE AND PLDF1.EFFECTIVE_END_DATE
) AS Location_Code_Old
,PLDFT.LOCATION_NAME AS Location_Desc
,(select PLDFT1.LOCATION_NAME
FROM per_all_assignments_m paam1
,PER_LOCATION_DETAILS_F PLDF1
,PER_LOCATION_DETAILS_F_TL PLDFT1
WHERE paam1.assignment_id = paam.assignment_id
and paam1.effective_end_date =
paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE = 'E'
AND PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
and paam1.location_id = paam.location_id
and paam1.location_id = PLDF1.location_id
and PLDF1.LOCATION_DETAILS_ID =
PLDFT1.LOCATION_DETAILS_ID
and PLDFT1.LANGUAGE = 'US'
--AND TRUNC(SYSDATE) BETWEEN
PLDF1.EFFECTIVE_START_DATE AND PLDF1.EFFECTIVE_END_DATE
--AND TRUNC(SYSDATE) BETWEEN
PLDFT1.EFFECTIVE_START_DATE AND PLDFT1.EFFECTIVE_END_DATE
AND paam1.effective_start_date BETWEEN
PLDF1.EFFECTIVE_START_DATE AND PLDF1.EFFECTIVE_END_DATE
AND paam1.effective_start_date BETWEEN
PLDFT1.EFFECTIVE_START_DATE AND PLDFT1.EFFECTIVE_END_DATE
) AS Location_Desc_Old
,paam.NORMAL_HOURS AS Work_Hours
,(select paam1.normal_hours
from per_all_assignments_m paam1
where paam1.assignment_id = paam.assignment_id
and paam1.effective_end_date =
paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE = 'E'
AND PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
) AS Work_Hours_Old
,PAWM.VALUE AS FTE
,(SELECT PAWM1.VALUE
FROM
per_all_assignments_m paam1
,PER_ASSIGN_WORK_MEASURES_F PAWM1
WHERE
paam1.assignment_id = paam.assignment_id
AND paam1.effective_end_date =
paam.effective_start_date-1
AND PAAM1.ASSIGNMENT_TYPE = 'E'
AND PAAM1.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAAM1.ASSIGNMENT_ID = PAWM1.ASSIGNMENT_ID
AND PAWM1.UNIT='FTE'
AND paam1.effective_start_date BETWEEN
PAWM1.EFFECTIVE_START_DATE AND PAWM1.EFFECTIVE_END_DATE
) AS FTE_OLD
,TO_CHAR(PAAM.LAST_UPDATE_DATE,'MM/DD/YYYY
HH24:MM:SS') AS Assignment_Last_Update_Date
,(PAAM.LAST_UPDATED_BY) AS Assignment_Last_Updated_By
,(SELECT EXTRACT(DAY FROM SYSDATE - PAAM.LAST_UPDATE_DATE) FROM
DUAL) AS Number_days_since_last_updated
FROM
PER_ALL_ASSIGNMENTS_M PAAM
,PER_ALL_PEOPLE_F PAPF
,PER_PERSON_NAMES_F PPNF
,PER_ASSIGNMENT_SUPERVISORS_F PASF
,PER_PERSON_NAMES_F PPNF_MGR
,PER_LOCATION_DETAILS_F PLDF
,PER_LOCATION_DETAILS_F_TL PLDFT
,PER_JOBS PJ
,PER_ASSIGN_WORK_MEASURES_F PAWM
,PER_ACTION_OCCURRENCES PAO
,PER_ACTIONS_TL PAB
WHERE
PAAM.PRIMARY_ASSIGNMENT_FLAG = 'Y'
AND PAAM.ASSIGNMENT_TYPE = 'E'
AND PAAM.EFFECTIVE_START_DATE <=SYSDATE
AND TRUNC(PAAM.LAST_UPDATE_DATE) >= TO_DATE('01-01-2018','DD-MM-YYYY')
--AND TRUNC(SYSDATE) BETWEEN PAAM.EFFECTIVE_START_DATE AND PAAM.EFFECTIVE_END_DATE
AND PAAM.PERSON_ID = PAPF.PERSON_ID
AND TRUNC(SYSDATE) BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE
--AND PAPF.PERSON_NUMBER='3154'
AND PAPF.PERSON_ID = PPNF.PERSON_ID
AND TRUNC(SYSDATE) BETWEEN PPNF.EFFECTIVE_START_DATE AND PPNF.EFFECTIVE_END_DATE
AND PPNF.NAME_TYPE = 'GLOBAL'
AND PAAM.PERSON_ID = PASF.PERSON_ID
AND PAAM.ASSIGNMENT_ID = PASF.ASSIGNMENT_ID
AND TRUNC(SYSDATE) BETWEEN PASF.EFFECTIVE_START_DATE AND PASF.EFFECTIVE_END_DATE
AND PASF.MANAGER_TYPE = 'LINE_MANAGER'
AND PASF.MANAGER_ID = PPNF_MGR.PERSON_ID
AND PPNF_MGR.NAME_TYPE = 'GLOBAL'
AND TRUNC(SYSDATE) BETWEEN PPNF_MGR.EFFECTIVE_START_DATE AND
PPNF_MGR.EFFECTIVE_END_DATE
AND PAAM.LOCATION_ID = PLDF.LOCATION_ID (+)
AND TRUNC(SYSDATE) BETWEEN PLDF.EFFECTIVE_START_DATE (+) AND
PLDF.EFFECTIVE_END_DATE (+)
AND PLDF.LOCATION_DETAILS_ID = PLDFT.LOCATION_DETAILS_ID (+)
AND TRUNC(SYSDATE) BETWEEN PLDFT.EFFECTIVE_START_DATE (+) AND
PLDFT.EFFECTIVE_END_DATE (+)
AND PLDFT.LANGUAGE (+) = 'US'
AND PAAM.JOB_ID = PJ.JOB_ID (+)
AND TRUNC(SYSDATE) BETWEEN PJ.EFFECTIVE_START_DATE (+) AND PJ.EFFECTIVE_END_DATE
(+)
AND PAAM.ASSIGNMENT_ID = PAWM.ASSIGNMENT_ID
AND PAWM.UNIT='FTE'
AND TRUNC(SYSDATE) BETWEEN PAWM.EFFECTIVE_START_DATE AND PAWM.EFFECTIVE_END_DATE
AND PAAM.ACTION_OCCURRENCE_ID = PAO.ACTION_OCCURRENCE_ID(+)
AND PAO.ACTION_ID = PAB.ACTION_ID(+)
AND UPPER(PAB.ACTION_NAME) IN('JOB CHANGE','PROMOTION','MANAGER
CHANGE','TRANSFER','WORKING HOURS CHANGE','LOCATION CHANGE'))
WHERE 1=1
AND ((STATUS_OLD <> STATUS) OR (LOCATION_CODE_OLD <> LOCATION_CODE))
ORDER BY Emp_Number DESC