0% found this document useful (0 votes)
26 views3 pages

New 4

The document contains a SQL query that retrieves employee data, including their names, IDs, and hours worked, filtered by specific organizational and period criteria. It combines information from various tables related to organizations, periods, and employee assignments. The final output includes calculated fields for hours worked, PTO hours, and remaining hours based on the defined periods and employee assignments.

Uploaded by

Vivek Singh Rai
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)
26 views3 pages

New 4

The document contains a SQL query that retrieves employee data, including their names, IDs, and hours worked, filtered by specific organizational and period criteria. It combines information from various tables related to organizations, periods, and employee assignments. The final output includes calculated fields for hours worked, PTO hours, and remaining hours based on the defined periods and employee assignments.

Uploaded by

Vivek Singh Rai
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/ 3

WITH ORG AS

(
SELECT HOUFTL.ORGANIZATION_ID
,HOUFTL.NAME
,GL.LEDGER_ID
,GL.PERIOD_SET_NAME
FROM HR_ORGANIZATION_UNITS_F_TL HOUFTL
,HR_ORGANIZATION_INFORMATION_F HOIF
,GL_LEDGERS GL
WHERE 1=1
AND HOUFTL.ORGANIZATION_ID = HOIF.ORGANIZATION_ID
and trunc(sysdate) between HOIF.effective_start_date and HOIF.effective_end_date
AND HOIF.ORG_INFORMATION3 = GL.LEDGER_ID
AND HOUFTL.NAME = 'USA BU'
)
,PERIODS_PA AS
(
select
PPA.PERIOD_NAME
,PPA.START_DATE
,PPA.END_DATE
,PPA.ORG_ID
,PPA.GL_PERIOD_NAME
,TO_CHAR(PPA.START_DATE,'fmddth')||'-'||to_char(PPA.END_DATE,'fmddth')
C_PERIOD_NAME
FROM
PJF_PERIODS_ALL PPA
)
,PERIODS_GL AS
(
select
gp.PERIOD_NAME
,gp.START_DATE
,gp.END_DATE
,gp.PERIOD_SET_NAME
,decode(to_char(gp.END_DATE,'MM')
,'01','JAN-'
,'02','FEB-'
,'03','MAR-'
,'04','APR-'
,'05','MAY-'
,'06','JUN-'
,'07','JUL-'
,'08','AUG-'
,'09','SEP-'
,'10','OCT-'
,'11','NOV-'
,'12','DEC-')||to_char(gp.END_DATE,'YYYY') C_PERIOD_NAME
FROM
GL_PERIODS GP
)

,PERIODS AS
(
SELECT
PERIODS_PA.PERIOD_NAME PA_PERIOD_NAME
,PERIODS_PA.START_DATE PA_PERIOD_START_DATE
,PERIODS_PA.END_DATE PA_PERIOD_END_DATE
,PERIODS_GL.PERIOD_NAME GL_PERIOD_NAME
,PERIODS_GL.START_DATE GL_PERIOD_START_DATE
,PERIODS_GL.END_DATE GL_PERIOD_END_DATE
FROM
ORG
,PERIODS_GL
,PERIODS_PA
WHERE 1=1
AND PERIODS_PA.ORG_ID = ORG.ORGANIZATION_ID
AND PERIODS_PA.GL_PERIOD_NAME = PERIODS_GL.PERIOD_NAME
AND PERIODS_GL.PERIOD_SET_NAME = ORG.PERIOD_SET_NAME
and PERIODS_PA.end_date between NVL(:P_START_DATE,PERIODS_PA.start_date) AND
PERIODS_PA.END_DATE
and PERIODS_PA.start_date between PERIODS_PA.start_date AND
NVL(:P_END_DATE,PERIODS_PA.END_DATE)
)
,EMPLOYEE AS
(
SELECT
PPNF.FULL_NAME PERSON_FULL_NAME
,ppnf.last_name
,PAAM.NORMAL_HOURS
,PAPF.PERSON_ID
,PPTL.USER_PERSON_TYPE
,PAAM.EFFECTIVE_START_DATE
,PAAM.EFFECTIVE_END_DATE
,PAAM.ASSIGNMENT_ID
,paam.business_unit_id
,PAAM.ORGANIZATION_ID DEPARTMENT_ID
FROM
PER_ALL_PEOPLE_F PAPF
,PER_PERSON_NAMES_F PPNF
,PER_PERIODS_OF_SERVICE PPOS
,PER_ALL_ASSIGNMENTS_M PAAM
,PER_PERSON_TYPES_TL PPTL

SELECT
PERSON_FULL_NAME
,PERSON_ID
,PERSON_TYPE
,PA_PERIOD_NAME
,PA_PERIOD_START_DATE
,PA_PERIOD_END_DATE
,UPPER(GL_PERIOD_NAME) GL_PERIOD_NAME
,GL_PERIOD_START_DATE
,GL_PERIOD_END_DATE
,FORECAST_HOURS
,PTO_HOURS
,PROJECT_HOURS
,WORKING_DAYS NORMAL_HOURS
,WORKING_DAYS - NVL(PTO_HOURS,0) - NVL(FORECAST_HOURS,0) REMAINING_HOURS
,DEPARTMENT_ID
FROM
(
SELECT
EMPLOYEE.PERSON_FULL_NAME

,EMPLOYEE.PERSON_ID
,EMPLOYEE.USER_PERSON_TYPE PERSON_TYPE
,PERIODS.PA_PERIOD_NAME PA_PERIOD_NAME
,PERIODS.PA_PERIOD_START_DATE PA_PERIOD_START_DATE
,PERIODS.PA_PERIOD_END_DATE PA_PERIOD_END_DATE
,PERIODS.GL_PERIOD_NAME GL_PERIOD_NAME
,PERIODS.GL_PERIOD_START_DATE GL_PERIOD_START_DATE
,PERIODS.GL_PERIOD_END_DATE GL_PERIOD_END_DATE
,(select sum(pe.ABS_UNITS)
from ANC_PER_ABS_PLAN_ENTRIES pe
where 1=1
and pe.PERSON_ID = EMPLOYEE.PERSON_ID
and pe.START_DATE between PERIODS.PA_PERIOD_START_DATE and
PERIODS.PA_PERIOD_END_DATE) PTO_HOURS
,(select sum(ppld.QUANTITY) FROM
PJO_PLAN_VERSIONS_B PPV
,PJO_PLAN_TYPES_TL pptt
,pjo_planning_elements ppe
,PJO_PLAN_LINE_DETAILS PPLD
WHERE 1=1
AND PPV.PLAN_STATUS_CODE = 'W'
AND PPV.CURRENT_PLAN_STATUS_FLAG = 'Y'
AND PPV.PLAN_CLASS_CODE = 'BUDGET'
AND PPV.PLAN_TYPE_ID = pptt.PLAN_TYPE_ID
AND PPTT.LANGUAGE=USERENV('LANG')
AND PPTT.NAME = 'Labor Project Plan Type'
AND ppe.PLAN_VERSION_ID = PPV.PLAN_VERSION_ID
AND ppe.PLANNING_ELEMENT_ID = ppld.PLANNING_ELEMENT_ID
and ppe.PERSON_ID = EMPLOYEE.PERSON_ID
AND PPLD.period_name = PERIODS.PA_PERIOD_NAME) FORECAST_HOURS
,(select sum(ppld.QUANTITY) FROM
PJO_PLAN_VERSIONS_B PPV
,PJO_PLAN_TYPES_TL pptt
,pjo_planning_elements ppe
,PJO_PLAN_LINE_DETAILS PPLD
WHERE 1=1
AND PPV.PLAN_STATUS_CODE = 'W'
AND PPV.CURRENT_PLAN_STATUS_FLAG = 'Y'
AND PPV.PLAN_CLASS_CODE = 'BUDGET'
AND PPV.PLAN_TYPE_ID = pptt.PLAN_TYPE_ID
AND PPTT.LANGUAGE=USERENV('LANG')
AND PPTT.NAME = 'Labor Project Plan Type'
AND ppe.PLAN_VERSION_ID = PPV.PLAN_VERSION_ID
AND ppe.PLANNING_ELEMENT_ID = ppld.PLANNING_ELEMENT_ID
and ppe.PERSON_ID = EMPLOYEE.PERSON_ID
AND PPLD.period_name = PERIODS.PA_PERIOD_NAME
and ppv.PROJECT_ID= :P_PROJECT_ID) PROJECT_HOURS
,(SELECT (to_char(COUNT(*))*8) FROM
PER_AVAILABILITY_DETAILS.GET_SCHEDULE_DETAILS('ASSIGN',EMPLOYEE.ASSIGNMENT_ID,PERIO
Ds.PA_PERIOD_START_DATE,PERIODs.PA_PERIOD_END_DATE+1) WHERE OBJECT_CATEGORY <>
'PH') WORKING_DAYS
,EMPLOYEE.DEPARTMENT_ID
FROM EMPLOYEE
,PERIODS
WHERE 1=1
and PERIODS.PA_PERIOD_START_DATE between EMPLOYEE.EFFECTIVE_START_DATE and
EMPLOYEE.EFFECTIVE_END_DATE
order by PERIODS.PA_PERIOD_START_DATE
)

You might also like