0% found this document useful (0 votes)
148 views5 pages

Time Absense Split

This document contains a SQL query that selects data from various HR and personnel database tables to retrieve employee and assignment details along with absence information. It selects the employee name, manager name, department, job details, location, absence dates and types, and other assignment attributes for one or more employees. The query joins tables like PER_ALL_PEOPLE_F, PER_ASSIGNMENTS_F, ANC_PER_ABS_ENTRIES, HR_LOCATIONS and filters on parameters like absence date range and company to return relevant results.

Uploaded by

gopinath atmuri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
148 views5 pages

Time Absense Split

This document contains a SQL query that selects data from various HR and personnel database tables to retrieve employee and assignment details along with absence information. It selects the employee name, manager name, department, job details, location, absence dates and types, and other assignment attributes for one or more employees. The query joins tables like PER_ALL_PEOPLE_F, PER_ASSIGNMENTS_F, ANC_PER_ABS_ENTRIES, HR_LOCATIONS and filters on parameters like absence date range and company to return relevant results.

Uploaded by

gopinath atmuri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

SELECT (SELECT PPNF_INNER.

FULL_NAME
FROM PER_ALL_PEOPLE_F PAPF_INNER,
PER_PERSON_NAMES_F PPNF_INNER
WHERE PAPF_INNER.PERSON_ID = (SELECT MANAGER_ID
FROM PER_ASSIGNMENT_SUPERVISORS_F
PASUF
WHERE PASUF.ASSIGNMENT_ID =
main.SUBRESOURCE_ID
AND PASUF.MANAGER_TYPE ='LINE_MANAGER'
AND NVL(:P_END_DATE,TRUNC(SYSDATE))
BETWEEN PASUF.EFFECTIVE_START_DATE AND PASUF.EFFECTIVE_END_DATE)
AND PAPF_INNER.PERSON_ID = PPNF_INNER.PERSON_ID
AND PPNF_INNER.NAME_TYPE='GLOBAL'
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN
PPNF_INNER.EFFECTIVE_START_DATE AND PPNF_INNER.EFFECTIVE_END_DATE
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN
PAPF_INNER.EFFECTIVE_START_DATE AND PAPF_INNER.EFFECTIVE_END_DATE
) MANAGER1,
HOUF.NAME DEPT1,
(SELECT PPNF_INNER.FULL_NAME
FROM PER_PERSON_NAMES_F PPNF_INNER
WHERE MAIN.RESOURCE_ID = PPNF_INNER.PERSON_ID
AND PPNF_INNER.NAME_TYPE='GLOBAL'
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN
PPNF_INNER.EFFECTIVE_START_DATE AND PPNF_INNER.EFFECTIVE_END_DATE) FULL_NAME1,
(SELECT NVL(PAF.TOWN_OR_CITY,PAF.REGION_3) HOMECITY
FROM PER_ADDRESSES_F PAF
,PER_PERSON_ADDR_USAGES_F PAU
WHERE PAAF.PERSON_ID = PAU.PERSON_ID
AND PAU.ADDRESS_ID = PAF.ADDRESS_ID
AND PAU.ADDRESS_TYPE ='HOME'
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN PAU.EFFECTIVE_START_DATE
AND PAU.EFFECTIVE_END_DATE
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN PAF.EFFECTIVE_START_DATE
AND PAF.EFFECTIVE_END_DATE
AND ROWNUM<2
) CITY_PROVINCE1,
(SELECT NVL(PAF.REGION_2,PAF.REGION_3) EMP_STATE
FROM PER_ADDRESSES_F PAF
,PER_PERSON_ADDR_USAGES_F PAU
WHERE PAAF.PERSON_ID = PAU.PERSON_ID
AND PAU.ADDRESS_ID = PAF.ADDRESS_ID
--AND PAU.ADDRESS_TYPE ='HOME'
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN PAU.EFFECTIVE_START_DATE
AND PAU.EFFECTIVE_END_DATE
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN PAF.EFFECTIVE_START_DATE
AND PAF.EFFECTIVE_END_DATE
AND ROWNUM<2
) EMP_STATE1,
MAIN.TASK_NAME TASK_NAME1,
MAIN.EMPLOYEENUMBER EMPLOYEENUMBER1,
MAIN.EARNING EARNING1 ,
MAIN.EARNINGCODE EARNINGCODE1,
MAIN.PROJECTNUMBER PROJECTNUMBER1,
MAIN.PROJECTNAME PROJECTNAME1,
MAIN.COMPANYCODE COMPANYCODE1,
TO_CHAR(TRUNC(main.START_TIME), 'MM/DD/YYYY') START_TIME1,
TO_CHAR(TRUNC(main.STOP_TIME), 'MM/DD/YYYY') STOP_TIME1,
TO_CHAR(main.START_TIME, 'MM/DD/YYYY HH24:MI') START_TIME_FMT1,
TO_CHAR(main.STOP_TIME, 'MM/DD/YYYY HH24:MI') STOP_TIME_FMT1,
(TO_CHAR(TRUNC(main.date_from), 'MM/DD/YYYY')||'-'||
TO_CHAR(TRUNC(main.date_to), 'MM/DD/YYYY')) TimePeriod1,
(SELECT hl.location_name
FROM hr_locations hl
WHERE hl.location_id = paaf.location_id
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN hl.EFFECTIVE_START_DATE AND
hl.EFFECTIVE_END_DATE) Location1,
(SELECT pjf.name
FROM per_jobs_f_vl pjf
WHERE pjf.job_id = paaf.job_id
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN pjf.EFFECTIVE_START_DATE
AND pjf.EFFECTIVE_END_DATE) Job1,
(SELECT meaning
FROM HR_LOOKUPS
WHERE lookup_type='EMP_CAT'
AND lookup_code=paaf.employment_category) AssignmentCategory1,
paaf.HOURLY_SALARIED_CODE HourlySalariedCode1,
paaf.FULL_PART_TIME FullPartTime1,
paaf.PERMANENT_TEMPORARY_FLAG PermanentTemporary1,
paaf.ASS_ATTRIBUTE3 PAY_CLASSIFICATION1,
REPLACE(REPLACE(MAIN.COMMENT_TEXT, CHR(13), ''), CHR(10), '')
COMMENT_TEXT1
FROM (SELECT EmployeeNumber
,SUBRESOURCE_ID
,EARNING,RESOURCE_ID
,EarningCode
,ProjectNumber
,ProjectName
,TASK_NAME
,TRUNC(START_DATE)+Level-1 START_TIME
,TRUNC(START_DATE)+Level-1 STOP_TIME
,DATE_TO
,DATE_FROM
,companycode
,COMMENT_TEXT
FROM
(SELECT PAPF.PERSON_NUMBER EmployeeNumber,
PAAF.ASSIGNMENT_ID SUBRESOURCE_ID,
ABS_DLT_ENTRY.DURATION/((ABS_ENTRY.END_DATE -
ABS_ENTRY.START_DATE)+1) EARNING,
PAPF.PERSON_ID RESOURCE_ID,
ABC_PLN.NAME EarningCode,
NULL ProjectNumber,
NULL ProjectName,
NULL TASK_NAME,
ABS_ENTRY.START_DATE,
ABS_ENTRY.END_DATE,
NULL DATE_TO,
NULL date_from,
( SELECT HLE.LEGAL_ENTITY_IDENTIFIER
FROM HR_ALL_ORGANIZATION_UNITS_F HR_ORG,
xle_entity_profiles HLE
WHERE HR_ORG.ORGANIZATION_ID =
ABS_ENTRY.LEGAL_ENTITY_ID
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN
HR_ORG.EFFECTIVE_START_DATE AND HR_ORG.EFFECTIVE_END_DATE
AND HLE.LEGAL_ENTITY_ID = HR_ORG.LEGAL_ENTITY_ID
AND HLE.ATTRIBUTE_CATEGORY in ('US','CA'))
companycode,
NULL COMMENT_TEXT
FROM PER_ALL_PEOPLE_F PAPF,
ANC_PER_ABS_ENTRY_DTLS ABS_DLT_ENTRY,
ANC_PER_ABS_ENTRIES ABS_ENTRY,
ANC_ABSENCE_TYPES_F_TL ABC_PLN,
ANC_ABSENCE_TYPES_F ABT,
PER_ALL_ASSIGNMENTS_F PAAF
WHERE 1 =1
AND TRUNC(ABS_DLT_ENTRY.ABSENCE_DATE) BETWEEN
PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE
-- Assignment
AND PAPF.PERSON_ID = ABS_ENTRY.PERSON_ID
AND TRUNC(ABS_DLT_ENTRY.ABSENCE_DATE) BETWEEN :P_START_DATE
and :P_END_DATE
-- ABSENCE STATUS
AND ABS_ENTRY.PER_ABSENCE_ENTRY_ID =
ABS_DLT_ENTRY.PER_ABSENCE_ENTRY_ID
AND TRUNC(ABS_DLT_ENTRY.ABSENCE_DATE) BETWEEN
ABS_ENTRY.START_DATE AND ABS_ENTRY.END_DATE
AND ABS_ENTRY.APPROVAL_STATUS_CD = 'APPROVED'
AND ABS_ENTRY.ABSENCE_STATUS_CD LIKE '%SUBMIT%'
--Absence type Plan
AND ABT.ABSENCE_TYPE_ID=ABC_PLN.ABSENCE_TYPE_ID
AND ABC_PLN.LANGUAGE ='US'
AND ABS_ENTRY.ABSENCE_TYPE_ID =ABT.ABSENCE_TYPE_ID
AND PAAF.person_id = PAPF.PERSON_ID
AND PAAF.PRIMARY_FLAG = 'Y'
AND PAAF.ASSIGNMENT_TYPE IN ('E','C')
AND TRUNC(ABS_DLT_ENTRY.ABSENCE_DATE) BETWEEN
TRUNC(PAAF.EFFECTIVE_START_DATE) AND TRUNC(PAAF.EFFECTIVE_END_DATE)
AND TRUNC(ABS_DLT_ENTRY.ABSENCE_DATE) BETWEEN
TRUNC(ABT.EFFECTIVE_START_DATE) AND TRUNC(ABT.EFFECTIVE_END_DATE)
AND TRUNC(ABS_DLT_ENTRY.ABSENCE_DATE) BETWEEN
TRUNC(ABC_PLN.EFFECTIVE_START_DATE) AND TRUNC(ABC_PLN.EFFECTIVE_END_DATE)
--AND PAPF.PERSON_NUMBER = '100757'
AND EXISTS ( SELECT 1
FROM HR_ALL_ORGANIZATION_UNITS_F
HR_ORG,
xle_entity_profiles HLE
WHERE HR_ORG.ORGANIZATION_ID =
ABS_ENTRY.LEGAL_ENTITY_ID
AND NVL(:P_END_DATE,TRUNC(SYSDATE))
BETWEEN TRUNC(HR_ORG.EFFECTIVE_START_DATE) AND TRUNC(HR_ORG.EFFECTIVE_END_DATE)
AND HLE.LEGAL_ENTITY_ID =
HR_ORG.LEGAL_ENTITY_ID
AND HLE.ATTRIBUTE_CATEGORY in ('US','CA')
AND ((COALESCE(NULL, :P_COMPANY) IS
NULL)OR (HLE.LEGAL_ENTITY_IDENTIFIER IN (:P_COMPANY)))
)
UNION

SELECT PAPF.PERSON_NUMBER EmployeeNumber,


PAAF.ASSIGNMENT_ID SUBRESOURCE_ID,
ABS_ENTRY.DURATION/((ABS_ENTRY.END_DATE -
ABS_ENTRY.START_DATE)+1) EARNING,
PAPF.PERSON_ID RESOURCE_ID,
ABC_PLN.NAME EarningCode,
NULL ProjectNumber,
NULL ProjectName,
NULL TASK_NAME,
ABS_ENTRY.START_DATE,
ABS_ENTRY.END_DATE,
NULL DATE_TO,
NULL date_from,
( SELECT HLE.LEGAL_ENTITY_IDENTIFIER
FROM HR_ALL_ORGANIZATION_UNITS_F HR_ORG,
xle_entity_profiles HLE
WHERE HR_ORG.ORGANIZATION_ID =
ABS_ENTRY.LEGAL_ENTITY_ID
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN
TRUNC(HR_ORG.EFFECTIVE_START_DATE) AND TRUNC(HR_ORG.EFFECTIVE_END_DATE)
AND HLE.LEGAL_ENTITY_ID =
HR_ORG.LEGAL_ENTITY_ID
AND HLE.ATTRIBUTE_CATEGORY in ('US','CA'))
companycode,
NULL COMMENT_TEXT
FROM PER_ALL_PEOPLE_F PAPF,
ANC_PER_ABS_ENTRIES ABS_ENTRY,
ANC_ABSENCE_TYPES_F_TL ABC_PLN,
ANC_ABSENCE_TYPES_F ABT,
PER_ALL_ASSIGNMENTS_F PAAF
WHERE 1 =1
-- Assignment
AND PAPF.PERSON_ID = ABS_ENTRY.PERSON_ID
AND TRUNC(ABS_ENTRY.START_DATE) BETWEEN :P_START_DATE
and :P_END_DATE
AND ABS_ENTRY.APPROVAL_STATUS_CD = 'APPROVED'
AND ABS_ENTRY.ABSENCE_STATUS_CD LIKE '%SUBMIT%'
--Absence type Plan
AND ABT.ABSENCE_TYPE_ID=ABC_PLN.ABSENCE_TYPE_ID
AND ABC_PLN.LANGUAGE ='US'
AND ABS_ENTRY.ABSENCE_TYPE_ID =ABT.ABSENCE_TYPE_ID
AND PAAF.person_id = PAPF.PERSON_ID
AND PAAF.PRIMARY_FLAG = 'Y'
AND PAAF.ASSIGNMENT_TYPE IN ('E','C')
AND TRUNC(ABS_ENTRY.START_DATE) BETWEEN
TRUNC(PAAF.EFFECTIVE_START_DATE) AND TRUNC(PAAF.EFFECTIVE_END_DATE)
--AND PAPF.PERSON_NUMBER = '100757'
AND NOT EXISTS(SELECT 1
FROM ANC_PER_ABS_ENTRY_DTLS
ABS_DLT_ENTRY
WHERE
ABS_ENTRY.PER_ABSENCE_ENTRY_ID =ABS_DLT_ENTRY.PER_ABSENCE_ENTRY_ID)
AND EXISTS ( SELECT 1
FROM HR_ALL_ORGANIZATION_UNITS_F
HR_ORG,
xle_entity_profiles HLE
WHERE HR_ORG.ORGANIZATION_ID =
ABS_ENTRY.LEGAL_ENTITY_ID
AND NVL(:P_END_DATE,TRUNC(SYSDATE))
BETWEEN TRUNC(HR_ORG.EFFECTIVE_START_DATE) AND TRUNC(HR_ORG.EFFECTIVE_END_DATE)
AND HLE.LEGAL_ENTITY_ID =
HR_ORG.LEGAL_ENTITY_ID
AND HLE.ATTRIBUTE_CATEGORY in
('US','CA')
AND ((COALESCE(NULL, :P_COMPANY) IS
NULL)OR (HLE.LEGAL_ENTITY_IDENTIFIER IN (:P_COMPANY)))
)
)AB --Absense
CONNECT BY LEVEL <= (AB.END_DATE - AB.START_DATE)+1
) main,
per_all_assignments_m paaf,
hr_organization_units_f_tl houf
WHERE paaf.organization_id = houf.organization_id (+)
AND main.SUBRESOURCE_ID = paaf.assignment_id
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN TRUNC(houf.effective_start_date (+))
AND TRUNC(houf.effective_end_date (+))
AND ((COALESCE(NULL, :P_DEPARTMENT) IS NULL)OR (HOUF.NAME IN (:P_DEPARTMENT)))
AND paaf.ASSIGNMENT_TYPE IN ('E','C')
AND paaf.primary_flag = 'Y'
AND NVL(:P_END_DATE,TRUNC(SYSDATE)) BETWEEN paaf.effective_start_date AND
paaf.effective_end_date
AND paaf.EFFECTIVE_START_DATE = (SELECT MAX(EFFECTIVE_START_DATE)
FROM per_all_assignments_m x
WHERE x.person_id = paaf.person_id
AND x.ASSIGNMENT_TYPE IN ('E','C')
AND x.primary_flag = 'Y')
ORDER BY MAIN.EMPLOYEENUMBER,MAIN.START_TIME

You might also like