SQL Query to Payroll Run Results

SQL Query to Payroll Run Results

SQL Query to Payroll Run Results

SELECT PERS.PERSON_NUMBER AS PERSON_NBR
	,PERS.FIRST_NAME AS FIRST_NAME
	,PERS.LAST_NAME AS LAST_NAME
	,PY_PRD.PERIOD_NAME AS PERD_NAME
	,to_char(PY_PRD.START_DATE,'MM/DD/YYYY') AS PERIOD_STRT_DT
	,to_char(PY_PRD.END_DATE,'MM/DD/YYYY') AS PERIOD_END_DT
	,ELEM_DET.ELEMENT_NAME AS ELEMNT_NAME
	,ELEM_DET.REPORTING_NAME AS REP_NAME
	,hr_general.decode_lookup ('PAY_UNITS', INP_VAL_DET.UOM) AS UOM
	,INP_VAL_DET.BASE_NAME AS INPUT_VAL_NAME
	,PY_RUN_RESLT.RESULT_VALUE AS RESLT_VALE
	,PY_RUN_RESLT.RUN_RESULT_ID
	,JOB_NM.NAME AS JOB_NAME
	,LOC.LOCATION_NAME LOCATION_NAME
	,INP_VAL_DET.DISPLAY_SEQUENCE
FROM (
	SELECT RunResultValuePEO.RUN_RESULT_ID
		,RunResultValuePEO.INPUT_VALUE_ID
		,RunResultValuePEO.RESULT_VALUE
		,PayrollActionPEO.PAYROLL_ACTION_ID AS PAYROLL_ACTION_ID470
		,PayrollActionPEO.EFFECTIVE_DATE
		,PayrollActionPEO.EARN_TIME_PERIOD_ID
		,PayrollActionPEO.PAYROLL_ID
		,PayrollRelationshipPEO.PERSON_ID
	FROM FUSION.PAY_RUN_RESULT_VALUES RunResultValuePEO
		,FUSION.PAY_RUN_RESULTS RunResultPEO
		,FUSION.PAY_PAYROLL_REL_ACTIONS PayrollRelationshipActionPEO
		,FUSION.PAY_PAYROLL_ACTIONS PayrollActionPEO
		,FUSION.PAY_PAY_RELATIONSHIPS_DN PayrollRelationshipPEO
	WHERE (
			RunResultValuePEO.RUN_RESULT_ID = RunResultPEO.RUN_RESULT_ID
			AND RunResultPEO.PAYROLL_REL_ACTION_ID = PayrollRelationshipActionPEO.PAYROLL_REL_ACTION_ID
			AND PayrollRelationshipActionPEO.PAYROLL_ACTION_ID = PayrollActionPEO.PAYROLL_ACTION_ID
			AND PayrollRelationshipActionPEO.PAYROLL_RELATIONSHIP_ID = PayrollRelationshipPEO.PAYROLL_RELATIONSHIP_ID
			)
	) PY_RUN_RESLT
	,(
		SELECT TimePeriodPEO.TIME_PERIOD_ID
			,TimePeriodPEO.END_DATE
			,TimePeriodPEO.PERIOD_NAME
			,TimePeriodPEO.START_DATE
		FROM FUSION.PAY_TIME_PERIODS TimePeriodPEO
		) PY_PRD
	,(SELECT PAYROLL_ID, payroll_name, effective_start_date, effective_end_date FROM pay_all_payrolls_f) PAP
	,(
		SELECT InputValueDPEO.INPUT_VALUE_ID
			,InputValueDPEO.EFFECTIVE_END_DATE
			,InputValueDPEO.EFFECTIVE_START_DATE
			,InputValueDPEO.ELEMENT_TYPE_ID
			,InputValueDPEO.UOM
			,InputValueDPEO.BASE_NAME
			,InputValueDPEO.DISPLAY_SEQUENCE
		FROM FUSION.PAY_INPUT_VALUES_F InputValueDPEO
		) INP_VAL_DET
	,(
		SELECT ElementTypeDPEO.ELEMENT_TYPE_ID
			,ElementTypeDPEO.EFFECTIVE_END_DATE
			,ElementTypeDPEO.EFFECTIVE_START_DATE
			,ElementTypeTranslationPEO.ELEMENT_NAME
			,ElementTypeTranslationPEO.REPORTING_NAME
			,ElementTypeTranslationPEO.LANGUAGE AS LANGUAGE500
			,ElementTypeTranslationPEO.ELEMENT_TYPE_ID AS ELEMENT_TYPE_ID1
		FROM FUSION.PAY_ELEMENT_TYPES_F ElementTypeDPEO
			,FUSION.PAY_ELEMENT_TYPES_TL ElementTypeTranslationPEO
		WHERE (
				ElementTypeDPEO.ELEMENT_TYPE_ID = ElementTypeTranslationPEO.ELEMENT_TYPE_ID
				AND (
					TRUNC(SYSDATE) BETWEEN ElementTypeDPEO.EFFECTIVE_START_DATE
						AND ElementTypeDPEO.EFFECTIVE_END_DATE
					)
				)
		) ELEM_DET
	,(
		SELECT AssignmentPEO.ASSIGNMENT_ID
			,AssignmentPEO.EFFECTIVE_START_DATE
			,AssignmentPEO.EFFECTIVE_END_DATE
			,AssignmentPEO.EFFECTIVE_LATEST_CHANGE
			,AssignmentPEO.EFFECTIVE_SEQUENCE
			,AssignmentPEO.ASSIGNMENT_STATUS_TYPE
			,AssignmentPEO.PERSON_ID
			,AssignmentPEO.BUSINESS_UNIT_ID
			,AssignmentPEO.JOB_ID
			,AssignmentPEO.LOCATION_ID
		FROM FUSION.PER_ALL_ASSIGNMENTS_M AssignmentPEO
		WHERE (
				(AssignmentPEO.EFFECTIVE_LATEST_CHANGE = 'Y')
				AND (AssignmentPEO.PRIMARY_FLAG = 'Y')
				AND AssignmentPEO.assignment_type = 'E'
				)
		) ASG
	,(
		SELECT PersonPEO.PERSON_ID AS PERSON_ID271
			,PersonDetailsPEO.PERSON_ID AS PERSON_ID415
			,PersonDetailsPEO.EFFECTIVE_START_DATE AS EFFECTIVE_START_DATE424
			,PersonDetailsPEO.EFFECTIVE_END_DATE AS EFFECTIVE_END_DATE433
			,PersonDetailsPEO.PERSON_NUMBER
			,PersonNamePEO.PERSON_NAME_ID AS PERSON_NAME_ID564
			,PersonNamePEO.EFFECTIVE_START_DATE AS EFFECTIVE_START_DATE574
			,PersonNamePEO.EFFECTIVE_END_DATE AS EFFECTIVE_END_DATE584
			,PersonNamePEO.LAST_NAME AS LAST_NAME
			,PersonNamePEO.FIRST_NAME AS FIRST_NAME
		FROM FUSION.PER_PERSONS PersonPEO
			,FUSION.PER_ALL_PEOPLE_F PersonDetailsPEO
			,FUSION.PER_PERSON_NAMES_F_V PersonNamePEO
		WHERE (
				PersonPEO.PERSON_ID = PersonDetailsPEO.PERSON_ID
				AND PersonPEO.PERSON_ID = PersonNamePEO.PERSON_ID
				AND (
					TRUNC(SYSDATE) BETWEEN PersonDetailsPEO.EFFECTIVE_START_DATE
						AND PersonDetailsPEO.EFFECTIVE_END_DATE
					)
				AND (
					TRUNC(SYSDATE) BETWEEN PersonNamePEO.EFFECTIVE_START_DATE
						AND PersonNamePEO.EFFECTIVE_END_DATE
					)
				)
		) PERS
	,(
		SELECT JB.NAME
			,JB.JOB_ID
		FROM FUSION.PER_JOBS_F_TL JB
		WHERE TRUNC(SYSDATE) BETWEEN JB.EFFECTIVE_START_DATE
				AND JB.EFFECTIVE_END_DATE
		) JOB_NM
	,(
		SELECT LOC1.LOCATION_ID
			,LOCATN.INTERNAL_LOCATION_CODE
			,LOC_DT.LOCATION_NAME
		FROM FUSION.PER_LOCATION_DETAILS_F LOC1
			,FUSION.PER_LOCATION_DETAILS_F_TL LOC_DT
			,FUSION.PER_LOCATIONS LOCATN
		WHERE TRUNC(SYSDATE) BETWEEN LOC1.EFFECTIVE_START_DATE
				AND LOC1.EFFECTIVE_END_DATE
			AND LOC1.LOCATION_DETAILS_ID = LOC_DT.LOCATION_DETAILS_ID
			AND TRUNC(SYSDATE) BETWEEN LOC_DT.EFFECTIVE_START_DATE
				AND LOC_DT.EFFECTIVE_END_DATE
			AND LOC1.LOCATION_ID = LOCATN.LOCATION_ID
			AND LOCATN.BUSINESS_GROUP_ID = LOC1.BUSINESS_GROUP_ID
			AND LOC_DT.BUSINESS_GROUP_ID = LOC1.BUSINESS_GROUP_ID
		) LOC
WHERE PY_RUN_RESLT.EARN_TIME_PERIOD_ID = PY_PRD.TIME_PERIOD_ID
	AND PY_RUN_RESLT.INPUT_VALUE_ID = INP_VAL_DET.INPUT_VALUE_ID
	AND INP_VAL_DET.ELEMENT_TYPE_ID = ELEM_DET.ELEMENT_TYPE_ID
	AND PY_RUN_RESLT.PERSON_ID = ASG.PERSON_ID
	AND ASG.PERSON_ID = PERS.PERSON_ID271(+)
	AND PY_RUN_RESLT.PAYROLL_ID = PAP.PAYROLL_ID
	AND ((COALESCE(null, :PAYROLL_NAME) is null) OR (PAP.PAYROLL_NAME  IN (:PAYROLL_NAME)))
	AND ((COALESCE(null, :PERIOD_NAME) is null) OR (PY_PRD.PERIOD_NAME  IN (:PERIOD_NAME)))
	AND ((COALESCE(null, :INPUT_NAME) is null) OR (INP_VAL_DET.BASE_NAME  IN (:INPUT_NAME)))
	AND ((COALESCE(null, :ELEMENT_NAME) is null) OR (ELEM_DET.ELEMENT_NAME  IN (:ELEMENT_NAME)))
	AND ASG.LOCATION_ID = LOC.LOCATION_ID(+)
	AND ASG.JOB_ID = JOB_NM.JOB_ID(+)
	AND PY_RUN_RESLT.EFFECTIVE_DATE >= INP_VAL_DET.EFFECTIVE_START_DATE
	AND PY_RUN_RESLT.EFFECTIVE_DATE <= INP_VAL_DET.EFFECTIVE_END_DATE
	AND ELEM_DET.LANGUAGE500 = 'US' AND ASG.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
	--AND PY_PRD.END_DATE BETWEEN :FROM_DATE AND :TO_DATE
	AND PY_RUN_RESLT.EFFECTIVE_DATE BETWEEN ASG.EFFECTIVE_START_DATE AND ASG.EFFECTIVE_END_DATE
order by PERS.PERSON_NUMBER, PY_RUN_RESLT.RUN_RESULT_ID, ELEM_DET.ELEMENT_NAME, INP_VAL_DET.DISPLAY_SEQUENCE

Leave a Reply

Your email address will not be published. Required fields are marked *