CMP_ASG_SAL_REPORTING_HIST_V
Details
-
Schema: FUSION
-
Object owner: CMP
-
Object type: VIEW
Columns
Name |
---|
ASSIGNMENT_ID EFFECTIVE_START_DATE EFFECTIVE_END_DATE EFFECTIVE_SEQUENCE EFFECTIVE_LATEST_CHANGE PERSON_ID ASSIGNMENT_TYPE ASG_ACTION_CODE ASG_BUSINESS_GROUP_ID ASG_ACTION_REASON_CODE ASG_PROPOSED_WORKER_TYPE SAL_ACTION_ID SAL_ACTION_REASON_ID SALARY_CLASSIFICATION_TYPE SAL_SALARY_ID SAL_DATE_FROM SAL_DATE_TO SAL_HISTORY_DATE IS_REPEATED_ASSIGNMENT IS_REPEATED_SALARY IS_LATEST ANCHOR_START_DATE ANCHOR_END_DATE |
Query
SQL_Statement |
---|
SELECT ASSIGNMENT_ID, EFFECTIVE_START_DATE, EFFECTIVE_END_DATE, EFFECTIVE_SEQUENCE, EFFECTIVE_LATEST_CHANGE,PERSON_ID, ASSIGNMENT_TYPE, ACTION_CODE ASG_ACTION_CODE, ASG_BUSINESS_GROUP_ID, ASG_ACTION_REASON_CODE, ASG_PROPOSED_WORKER_TYPE, SAL_ACTION_ID, SAL_ACTION_REASON_ID, ( CASE WHEN NEVER_HAD_SALARY_IND = 'Y' THEN 'NEVER_HAD_SALARY' WHEN PAST_SALARY_EXISTS_IND = 'Y' THEN 'PAST_SALARY_EXISTS' WHEN ( ( NEXT_ROW_SALARY_GAP_IND = 'Y' OR PREV_ROW_SALARY_GAP_IND = 'Y' OR RANK_SALARY_GAP = 1 ) AND ( FIRST_SAL_ROW_IND = 'N' AND RANK_WAS_ROW <> 1 ) ) THEN 'GAP_IN_SALARY' WHEN ASOFDATE_SALARY_EXISTS_IND = 'Y' THEN 'AS_OF_DATE_SALARY' WHEN ESD_SATISFIED_IND = 'Y' THEN 'AS_OF_DATE_SALARY' WHEN FUTURE_SALARY_EXISTS_IND = 'Y' THEN 'FUTURE_SALARY_EXISTS' END ) SALARY_CLASSIFICATION_TYPE, ( CASE WHEN ( NEVER_HAD_SALARY_IND = 'Y' OR FUTURE_SALARY_EXISTS_IND = 'Y' OR PAST_SALARY_EXISTS_IND = 'Y' ) AND ( ASOFDATE_SALARY_EXISTS_IND = 'N' AND ESD_SATISFIED_IND = 'N' ) THEN NULL ELSE SALARY_ID END ) SAL_SALARY_ID, ( CASE WHEN ( NEVER_HAD_SALARY_IND = 'Y' OR FUTURE_SALARY_EXISTS_IND = 'Y' OR PAST_SALARY_EXISTS_IND = 'Y' ) AND ( ASOFDATE_SALARY_EXISTS_IND = 'N' AND ESD_SATISFIED_IND = 'N' ) THEN NULL ELSE DATE_FROM END ) SAL_DATE_FROM, ( CASE WHEN ( NEVER_HAD_SALARY_IND = 'Y' OR FUTURE_SALARY_EXISTS_IND = 'Y' OR PAST_SALARY_EXISTS_IND = 'Y' ) AND ( ASOFDATE_SALARY_EXISTS_IND = 'N' AND ESD_SATISFIED_IND = 'N' ) THEN NULL ELSE DATE_TO END ) SAL_DATE_TO, ( CASE WHEN ( NEVER_HAD_SALARY_IND = 'Y' OR FUTURE_SALARY_EXISTS_IND = 'Y' OR PAST_SALARY_EXISTS_IND = 'Y' ) AND ( ASOFDATE_SALARY_EXISTS_IND = 'N' AND ESD_SATISFIED_IND = 'N' ) THEN NULL ELSE HISTORY_DATE END ) SAL_HISTORY_DATE, ( CASE WHEN DENSE_RANK() OVER(PARTITION BY ASSIGNMENT_ID, EFFECTIVE_START_DATE ORDER BY DATE_FROM ASC) >= 2 THEN 'Y' ELSE 'N' END ) IS_REPEATED_ASSIGNMENT, ( CASE WHEN ( HISTORY_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE ) THEN 'N' ELSE 'Y' END ) IS_REPEATED_SALARY, ( CASE WHEN RANK_WAS_ROW = 1 THEN 'Y' ELSE 'N' END ) IS_LATEST, ( CASE WHEN ( NEVER_HAD_SALARY_IND = 'Y' OR PAST_SALARY_EXISTS_IND = 'Y' OR FUTURE_SALARY_EXISTS_IND = 'Y' ) THEN EFFECTIVE_START_DATE WHEN ( DATE_FROM < EFFECTIVE_START_DATE AND DATE_FROM < HISTORY_DATE ) THEN DATE_FROM WHEN ( HISTORY_DATE < EFFECTIVE_START_DATE AND HISTORY_DATE < DATE_FROM ) THEN HISTORY_DATE ELSE EFFECTIVE_START_DATE END ) ANCHOR_START_DATE, ( CASE WHEN ( NEVER_HAD_SALARY_IND = 'Y' OR PAST_SALARY_EXISTS_IND = 'Y' OR FUTURE_SALARY_EXISTS_IND = 'Y' ) THEN EFFECTIVE_END_DATE WHEN ( DATE_TO > EFFECTIVE_END_DATE AND DATE_TO > HISTORY_DATE ) THEN DATE_TO WHEN ( HISTORY_DATE > EFFECTIVE_END_DATE AND HISTORY_DATE > DATE_TO ) THEN HISTORY_DATE ELSE EFFECTIVE_END_DATE END ) ANCHOR_END_DATE FROM ( SELECT A.ASSIGNMENT_ID, A.EFFECTIVE_START_DATE, A.EFFECTIVE_END_DATE, A.EFFECTIVE_SEQUENCE, A.EFFECTIVE_LATEST_CHANGE , A.PERSON_ID, A.ASSIGNMENT_TYPE, A.ACTION_CODE, S.SALARY_ID, S.DATE_FROM,S.DATE_TO, GREATEST(DATE_FROM,LEAST(TRUNC(SYSDATE),DATE_TO)) HISTORY_DATE, A.BUSINESS_GROUP_ID ASG_BUSINESS_GROUP_ID, A.REASON_CODE ASG_ACTION_REASON_CODE, S.ACTION_ID SAL_ACTION_ID, S.ACTION_REASON_ID SAL_ACTION_REASON_ID, A.PROPOSED_WORKER_TYPE ASG_PROPOSED_WORKER_TYPE, ( CASE WHEN A.EFFECTIVE_START_DATE > S.DATE_TO THEN 'Y' ELSE 'N' END ) PAST_SALARY_EXISTS_IND, ( CASE WHEN A.EFFECTIVE_END_DATE < S.DATE_TO THEN 'Y' ELSE 'N' END ) FUTURE_SALARY_EXISTS_IND, ( CASE WHEN S.SALARY_ID IS NULL THEN 'Y' ELSE 'N' END ) NEVER_HAD_SALARY_IND, ( CASE WHEN S.SALARY_ID IS NULL OR A.EFFECTIVE_START_DATE > S.DATE_TO OR A.EFFECTIVE_END_DATE < S.DATE_TO THEN 'N' ELSE 'Y' END ) ASOFDATE_SALARY_EXISTS_IND, ( CASE WHEN A.EFFECTIVE_START_DATE BETWEEN S.DATE_FROM AND S.DATE_TO THEN 'Y' ELSE 'N' END ) ESD_SATISFIED_IND, DENSE_RANK() OVER(PARTITION BY A.ASSIGNMENT_ID ORDER BY S.DATE_FROM ASC) RANK_FIRST_NOTNULL_SALARY, DENSE_RANK() OVER(PARTITION BY A.ASSIGNMENT_ID ORDER BY S.DATE_FROM DESC) RANK_LAST_NOTNULL_SALARY, DENSE_RANK() OVER(PARTITION BY A.ASSIGNMENT_ID ORDER BY A.EFFECTIVE_START_DATE DESC, A.EFFECTIVE_SEQUENCE DESC, S.DATE_FROM DESC) RANK_WAS_ROW, DENSE_RANK() OVER(PARTITION BY A.ASSIGNMENT_ID,A.EFFECTIVE_START_DATE, A.EFFECTIVE_SEQUENCE, A.ACTION_CODE ORDER BY S.DATE_FROM DESC) RANK_SALARY_GAP, ( CASE WHEN NOT EXISTS ( SELECT NULL FROM CMP_SALARY R WHERE R.ASSIGNMENT_ID = S.ASSIGNMENT_ID AND R.DATE_FROM = S.DATE_TO+1 ) THEN 'Y' ELSE 'N' END ) NEXT_ROW_SALARY_GAP_IND, ( CASE WHEN NOT EXISTS ( SELECT NULL FROM CMP_SALARY R WHERE R.ASSIGNMENT_ID = S.ASSIGNMENT_ID AND R.DATE_TO = S.DATE_FROM-1 ) THEN 'Y' ELSE 'N' END ) PREV_ROW_SALARY_GAP_IND, ( CASE WHEN S.DATE_FROM = MIN(S.DATE_FROM) OVER(PARTITION BY S.ASSIGNMENT_ID) THEN 'Y' ELSE 'N' END ) FIRST_SAL_ROW_IND FROM PER_ALL_ASSIGNMENTS_M A, CMP_SALARY S WHERE A.ASSIGNMENT_ID = S.ASSIGNMENT_ID (+) AND A.ASSIGNMENT_TYPE IN ('E', 'C', 'N','P' ) ) INNER_VIEW WHERE ( ( NEVER_HAD_SALARY_IND = 'Y' ) OR ( ASOFDATE_SALARY_EXISTS_IND = 'Y' ) OR ( FUTURE_SALARY_EXISTS_IND = 'Y' AND RANK_FIRST_NOTNULL_SALARY = 1 ) OR ( PAST_SALARY_EXISTS_IND = 'Y' AND RANK_LAST_NOTNULL_SALARY = 1 ) OR ( ESD_SATISFIED_IND = 'Y' ) OR ( NEXT_ROW_SALARY_GAP_IND = 'Y' AND PREV_ROW_SALARY_GAP_IND = 'Y' AND RANK_SALARY_GAP = 1 ) ) |