[go: up one dir, main page]

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

Lastest Get - Cloud - People API SQL Query

The document contains a SQL query that retrieves employee data, including identifiers, names, job titles, and other relevant information from various tables. It uses multiple Common Table Expressions (CTEs) to organize data related to employee identifiers and RBS elements. The final selection filters and orders the complete dataset based on specific criteria, ensuring only relevant employee records are returned.

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)
18 views5 pages

Lastest Get - Cloud - People API SQL Query

The document contains a SQL query that retrieves employee data, including identifiers, names, job titles, and other relevant information from various tables. It uses multiple Common Table Expressions (CTEs) to organize data related to employee identifiers and RBS elements. The final selection filters and orders the complete dataset based on specific criteria, ensuring only relevant employee records are returned.

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/ 5

WITH EXT_ID_EMP as

(select peai.person_id
,peai.EXT_IDENTIFIER_NUMBER EBS_EMP_NUMBER
,peai1.EXT_IDENTIFIER_NUMBER EBS_PERSON_ID
from PER_EXT_APP_IDENTIFIERS peai
,PER_EXT_APP_IDENTIFIERS peai1
where 1=1
and trunc(sysdate) between peai.DATE_FROM and NVL(peai.DATE_TO,to_date('31-12-
4712','dd-mm-yyyy'))
and peai.EXT_IDENTIFIER_TYPE = 'PRFT_EBS'
and peai.person_id = peai1.person_id
and peai1.EXT_IDENTIFIER_TYPE = 'PRFT_EBS_PERSON_ID'
AND peai1.DATE_FROM = peai.DATE_FROM
and trunc(sysdate) between peai1.DATE_FROM and NVL(peai1.DATE_TO,to_date('31-12-
4712','dd-mm-yyyy'))
and peai.DATE_FROM = (select max(pei2.DATE_FROM) from PER_EXT_APP_IDENTIFIERS pei2
where pei2.person_id = peai.person_id and peai.EXT_IDENTIFIER_TYPE =
pei2.EXT_IDENTIFIER_TYPE)
)

,EXT_ID_NPW as
(select peai.person_id
,peai.EXT_IDENTIFIER_NUMBER EBS_NPW_NUMBER
,peai1.EXT_IDENTIFIER_NUMBER EBS_NPW_PERSON_ID
from PER_EXT_APP_IDENTIFIERS peai
,PER_EXT_APP_IDENTIFIERS peai1
where 1=1
and trunc(sysdate) between peai.DATE_FROM and NVL(peai.DATE_TO,to_date('31-12-
4712','dd-mm-yyyy'))
and peai.EXT_IDENTIFIER_TYPE = 'PRFT_EBS_NPW'
and peai.person_id = peai1.person_id
and peai1.EXT_IDENTIFIER_TYPE = 'PRFT_EBS_PERSON_ID'
AND peai1.DATE_FROM = peai.DATE_FROM
and trunc(sysdate) between peai1.DATE_FROM and NVL(peai1.DATE_TO,to_date('31-12-
4712','dd-mm-yyyy'))
and peai.DATE_FROM = (select max(pei2.DATE_FROM) from PER_EXT_APP_IDENTIFIERS pei2
where pei2.person_id = peai.person_id and peai.EXT_IDENTIFIER_TYPE =
pei2.EXT_IDENTIFIER_TYPE)
)

,RBS_ELEMENTS as
(
select
pre.person_id
,pre.RBS_ELEMENT_ID
,pre.ALIAS RBS_ELEMENT_NAME
,pre.rbs_version_id
,prentl.NAME rbs_ele_names_tl
,prvtl.NAME rbs_version_name
,restl.name rbs_resource_type_name
,resftl.name rbs_res_format_type_name
,exptl.EXPENDITURE_TYPE_NAME
,rvb.RBS_HEADER_ID
,rvb.STATUS_CODE VERSION_STATUS_CODE
,RHB.RBS_TYPE
,RHB.CENTRALLY_CONTROL_FLAG
,rHTL.NAME RBS_HEADER_NAME
FROM
PJF_RBS_ELEMENTS pre
,PJF_RBS_ELEMENT_NAMES_TL prentl
,PJF_RBS_VERSIONS_TL prvtl
,PJF_RES_TYPES_TL restl
,PJF_RES_FORMATS_TL resftl
,PJF_EXP_TYPES_TL exptl

,PJF_RBS_VERSIONS_B rvb

,PJF_RBS_HEADERS_B RHB
,PJF_RBS_HEADERS_TL RHTL
Where 1=1
AND PRE.RESOURCE_CLASS_CODE = 'PEOPLE'
and pre.RBS_ELEMENT_NAME_ID = prentl.RBS_ELEMENT_NAME_ID
AND prentl.LANGUAGE=USERENV('LANG')
and pre.RBS_VERSION_ID = prvtl.RBS_VERSION_ID
AND prvtl.LANGUAGE=USERENV('LANG')
and pre.RESOURCE_TYPE_ID = restl.RES_TYPE_ID
AND restl.LANGUAGE=USERENV('LANG')
and pre.RES_FORMAT_ID = resftl.RES_FORMAT_ID
AND resftl.LANGUAGE=USERENV('LANG')
and pre.EXPENDITURE_TYPE_ID = exptl.EXPENDITURE_TYPE_ID
AND exptl.LANGUAGE = USERENV('LANG')
and pre.RBS_VERSION_ID = rvb.RBS_VERSION_ID
and rvb.RBS_HEADER_ID = rHb.RBS_HEADER_ID
and rHb.RBS_HEADER_ID = rHTL.RBS_HEADER_ID
AND rHTL.LANGUAGE=USERENV('LANG')
AND pre.person_id is not null
--and pre.person_id = 300000060871967
-- criteria provided by Jeff Bisson
and pre.EXPENDITURE_TYPE_ID is not null
and (pre.rbs_version_id is null or pre.rbs_version_id in (select distinct
pasg.RBS_VERSION_ID
from PJF_PROJECTS_ALL_B PP
,PJF_PR
OJECT_STATUSES_TL ppst
,PJF_RBS_PRJ_ASSIGNMENTS pasg

where 1=1
and pp.PROJECT_STATUS_CODE =
ppst.PROJECT_STATUS_CODE
AND ppst.LANGUAGE=USERENV('LANG')
and ppst.PROJECT_STATUS_NAME in
('CONV-Approved','Approved')
and PP.PROJECT_ID =
pasg.PROJECT_ID)

)
-- Criteria provided by Julie
and rHTL.NAME = 'Billable Planning Resources'

,complete_data as
(
SELECT papf.person_id
,papf.person_number
,ppnf.first_name
,ppnf.last_name
,ppnf.display_name
,paam.business_unit_id business_unit_id
,paam.organization_id Department_id
,ppos.DATE_START Hire_Date
,ppos.ACTUAL_TERMINATION_DATE Termination_Date
,email.email_address
,ppei.PEI_INFORMATION_DATE1 Adjusted_Service_Date
,GREATEST(ppos.LAST_UPDATE_DATE,paam.LAST_UPDATE_DATE,email.LAST_UPDATE_DATE,ppnf.L
AST_UPDATE_DATE) Last_Modified_Date
,pjftl.NAME job_title
,ppos.PERIOD_TYPE employee_type

,EXT_ID_EMP.EBS_EMP_NUMBER
,EXT_ID_EMP.EBS_PERSON_ID

,EXT_ID_NPW.EBS_NPW_NUMBER
,EXT_ID_NPW.EBS_NPW_PERSON_ID

,(NVL((select 'Y' from dual


where exists (select 1 from PJF_RBS_ELEMENTS PRE
,PJF_RBS_VERSIONS_B PRVB
where 1=1
AND PRE.RESOURCE_CLASS_CODE = 'PEOPLE'
AND PRE.RBS_VERSION_ID = PRVB.RBS_VERSION_ID
AND PRVB.STATUS_CODE = 'FROZEN'
AND PRVB.CURRENT_REPORTING_FLAG = 'Y'
and pre.person_id = ppos.person_id)),'N')) BILLABLE_FLAG

,RBS_ELEMENTS.RBS_ELEMENT_ID
,RBS_ELEMENTS.RBS_ELEMENT_NAME

,RBS_ELEMENTS.rbs_ele_names_tl
,RBS_ELEMENTS.rbs_version_name
,RBS_ELEMENTS.rbs_resource_type_name
,RBS_ELEMENTS.rbs_res_format_type_name
,RBS_ELEMENTS.EXPENDITURE_TYPE_NAME

,RBS_ELEMENTS.RBS_HEADER_ID
,RBS_ELEMENTS.VERSION_STATUS_CODE

,RBS_ELEMENTS.RBS_TYPE
,RBS_ELEMENTS.CENTRALLY_CONTROL_FLAG

,RBS_ELEMENTS.RBS_HEADER_NAME
FROM
per_all_people_f papf
,per_person_names_f ppnf
,per_periods_of_service ppos
,per_all_assignments_m paam
,per_email_addresses email
,PER_PEOPLE_EXTRA_INFO_F ppei
,PER_JOBS_F_TL pjftl
,EXT_ID_EMP
,EXT_ID_NPW
,RBS_ELEMENTS
where 1=1
and papf.person_id = ppnf.person_id
and ppnf.name_type = 'GLOBAL'
and trunc(sysdate) between papf.effective_start_date and papf.effective_end_date
and trunc(sysdate) between ppnf.effective_start_date and ppnf.effective_end_date
and papf.person_id = ppos.person_id
and ppos.PERIOD_TYPE in ('C','E')
and ppos.date_start = (select max(ppos1.date_start)
from per_periods_of_service ppos1
where ppos.person_id = ppos1.person_id
and ppos1.period_type in ('C','E' ))

and ppos.PERIOD_OF_SERVICE_ID = paam.PERIOD_OF_SERVICE_ID


and paam.effective_latest_change = 'Y'
and paam.PRIMARY_FLAG = 'Y'
and trunc(sysdate) between paam.effective_start_date and paam.effective_end_date

and papf.person_id = email.person_id (+)


and email.email_type (+) = 'W1'

and papf.person_id = ppei.person_id (+)


and ppei.PEI_INFORMATION_CATEGORY (+) = 'PRFT_ADJ_SDATE'
and trunc(sysdate) between ppei.effective_start_date (+) and
ppei.effective_end_date (+)

and paam.JOB_ID = pjftl.JOB_ID (+)


and pjftl.language(+) =USERENV('LANG')
and trunc(sysdate) between pjftl.effective_start_date (+) and
pjftl.effective_end_date (+)

AND
GREATEST(ppos.LAST_UPDATE_DATE,paam.LAST_UPDATE_DATE,email.LAST_UPDATE_DATE,ppnf.LA
ST_UPDATE_DATE) >=
NVL(:LastUpdateDateFrom,GREATEST(ppos.LAST_UPDATE_DATE,paam.LAST_UPDATE_DATE,email.
LAST_UPDATE_DATE,ppnf.LAST_UPDATE_DATE))

and papf.person_id = EXT_ID_EMP.person_id(+)


and papf.person_id = EXT_ID_NPW.person_id(+)

and ppos.person_id = rbs_elements.person_id(+)


)

select
person_id
,person_number
,first_name
,last_name
,display_name
,business_unit_id
,Department_id
,Hire_Date
,Termination_Date
,email_address
,Adjusted_Service_Date
,Last_Modified_Date
,job_title
,employee_type

,EBS_EMP_NUMBER
,EBS_PERSON_ID

,EBS_NPW_NUMBER
,EBS_NPW_PERSON_ID
,BILLABLE_FLAG
,RBS_ELEMENT_ID
,RBS_ELEMENT_NAME

,rbs_ele_names_tl
,rbs_version_name
,rbs_resource_type_name
,rbs_res_format_type_name
,EXPENDITURE_TYPE_NAME

,RBS_HEADER_ID
,VERSION_STATUS_CODE

,RBS_TYPE
,CENTRALLY_CONTROL_FLAG

,RBS_HEADER_NAME

FROM
complete_data
where 1=1
--and complete_data.person_id in (select cd1.person_id from complete_data cd1 group
by cd1.person_id having count(*) > 1)
order by person_number

You might also like