CMP_SALARY_REPORT_V

Details

  • Schema: FUSION

  • Object owner: CMP

  • Object type: VIEW

Query

SQL_Statement

SELECT

psa.salary_id,

psa.assignment_id,

psa.element_entry_id,

asg.person_id,

psa.date_from,

psa.date_to,

psa.next_sal_review_date,

psa.salary_amount,

psa.fte_value,

cmp_salary_entry_api.get_salary_chg_percent(psa.salary_id,psa.date_from) last_change_percent,

cmp_salary_entry_api.get_annualized_salary(psa.assignment_id, psa.date_from, 0) as annual_salary,

cmp_salary_entry_api.get_annualized_ft_salary(psa.assignment_id, psa.date_from, 0) as annual_ft_salary,

psa.currency_code,

psa.salary_frequency,

cmp_ff_dbi_pkg.get_quintile(asg.grade_id,psa.salary_id, psa.assignment_id,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to),psa.fte_value) as quintile,

cmp_ff_dbi_pkg.get_quartile(asg.grade_id,psa.salary_id, psa.assignment_id,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to),psa.fte_value) as quartile,

cmp_ff_dbi_pkg.get_comparatio(asg.grade_id,psa.salary_id, psa.assignment_id,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to),psa.fte_value) as comparatio,

cmp_ff_dbi_pkg.get_range_position(asg.grade_id,psa.salary_id, psa.assignment_id,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to),psa.fte_value) as range_position,

cmp_ff_dbi_pkg.get_grade_min(asg.grade_id,psa.salary_id, psa.assignment_id,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to),psa.fte_value) as grade_min,

cmp_ff_dbi_pkg.get_grade_mid(asg.grade_id,psa.salary_id, psa.assignment_id,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to),psa.fte_value) as grade_mid,

cmp_ff_dbi_pkg.get_grade_max(asg.grade_id,psa.salary_id, psa.assignment_id,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to),psa.fte_value) as grade_max,

cmp_ff_dbi_pkg.get_zone_name(psa.assignment_id, decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to), psa.range_diff_id) as zone_name,

cmp_ff_dbi_pkg.get_zone_type_name(psa.assignment_id, decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to), psa.range_diff_id ) as zone_type_name,

cmp_ff_dbi_pkg.get_zone_id(psa.assignment_id, decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to), psa.range_diff_id) as zone_id,

cmp_ff_dbi_pkg.get_zone_type_id(psa.assignment_id, decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to), psa.range_diff_id ) as zone_type_id,

psa.salary_basis_code,

psa.salary_basis_id,

psa.display_name as salary_basis_name,

psa.action_id,

psa.action_name,

psa.action_reason_id,

psa.action_reason,

asg.job_id,

asg.location_id,

asg.business_unit_id,

asg.grade_id,

asg.grade_code,

asg.grade_name,

asg.assigment_start_date,

asg.assigment_end_date,

asg.assignment_number,

psa.range_diff_id,

psa.salary_amount_scale,

psa.last_updated_by,

psa.creation_date,

psa.last_update_date,

psa.last_update_login,

psa.object_version_number,

psa.business_group_id,

prt.rate_id grade_rate_id,

prt.NAME grade_rate_name,

prt.ANNUALIZATION_FACTOR grade_rate_ann_factor,

prt.RATE_TYPE grade_rate_type,

prt.RATE_OBJECT_TYPE grade_rate_obj_type,

prt.RATE_FREQUENCY grade_rate_frequency,

decode(psa.SALARY_BASIS_CODE,'PERIOD',upper(cmp_ff_dbi_pkg.get_payroll_freq_code(psa.ASSIGNMENT_ID, greatest(psa.date_from,least(trunc(sysdate),psa.date_to)))) , null) payroll_frequency_code,

cmp_ff_dbi_pkg.get_payroll_factor( psa.ASSIGNMENT_ID, psa.SALARY_BASIS_ID , decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to)) payroll_annual_factor,

cmp_ff_dbi_pkg.get_previous_sal(psa.ASSIGNMENT_ID,psa.DATE_FROM) Prev_Amt,

cmp_ff_dbi_pkg.get_salary_adjustment_amount(psa.SALARY_ID,psa.DATE_FROM) Salary_Change_Amt,

cmp_ff_dbi_pkg.get_prev_sal_basis_id(psa.ASSIGNMENT_ID,psa.DATE_FROM) prev_salary_basis,

cmp_ff_dbi_pkg.get_prev_curr_code(psa.ASSIGNMENT_ID,psa.DATE_FROM) prev_curr_code,

cmp_ff_dbi_pkg.get_percentile_value_fuse(psa.ASSIGNMENT_ID,psa.SALARY_BASIS_ID,psa.SALARY_AMOUNT,prt.RATE_ID,asg.GRADE_ID,prt.ANNUALIZATION_FACTOR,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to)) percentile,

cmp_ff_dbi_pkg.get_range_differential_factor(psa.SALARY_ID,decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from) ,psa.date_to)) RANGE_DIFF_FACTOR,

psa.action_occurrence_id,

psa.element_type_id

FROM

(SELECT csa.salary_id,

csa.element_entry_id,

csa.assignment_id,

csa.date_from,

csa.date_to,

csa.next_sal_review_date,

csa.salary_amount,

NVL (fte.value, 1) fte_value,

ele.input_currency_code as currency_code,

csb.salary_basis_code,

hlk.meaning as salary_frequency,

csb.grade_rate_id,

csa.action_occurrence_id,

csa.action_id,

act.action_name,

csa.action_reason_id,

rea.action_reason,

csb.range_diff_id,

NVL(csb.amount_decimal_precision,2) AS salary_amount_scale,

csa.created_by,

csa.last_updated_by,

csa.creation_date,

csa.last_update_date,

csa.last_update_login,

csa.object_version_number,

csb.display_name,

csb.salary_basis_id,

csb.business_group_id,

csb.element_type_id

FROM cmp_salary csa,

cmp_salary_bases_vl csb,

pay_element_types_vl ele,

hcm_lookups hlk,

per_assign_work_measures_f fte,

per_actions_vl act,

per_action_reasons_vl rea

WHERE csa.salary_basis_id = csb.salary_basis_id

AND act.action_id(+) = csa.action_id

AND rea.action_reason_id(+) = csa.action_reason_id

AND csa.business_group_id = csb.business_group_id

AND hlk.lookup_code = csb.salary_basis_code

AND hlk.lookup_type = 'CMP_SALARY_BASIS'

AND csb.element_type_id = ele.element_type_id

AND csa.date_from BETWEEN ele.effective_start_date AND ele.effective_end_date

AND fte.assignment_id(+) = csa.assignment_id

AND fte.unit(+) = 'FTE'

AND decode (csa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),csa.date_from),csa.date_to) BETWEEN fte.effective_start_date(+) AND fte.effective_end_date(+)

) psa,

(SELECT asg.assignment_id,

asg.person_id,

asg.job_id,

asg.location_id,

asg.business_unit_id,

grd.grade_id,

grd.grade_code,

grd.name AS grade_name,

asg.assignment_number,

asg.effective_start_date AS assigment_start_date,

asg.effective_end_date AS assigment_end_date

FROM per_all_assignments_m asg,

per_grades_f_vl grd

WHERE asg.effective_latest_change = 'Y'

AND grd.grade_id(+) = asg.grade_id

AND asg.effective_start_date BETWEEN grd.effective_start_date(+) AND grd.effective_end_date(+)

) asg,

per_rates_f_vl prt

WHERE psa.assignment_id = asg.assignment_id

AND psa.grade_rate_id = prt.rate_id(+)

AND decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from),psa.date_to) BETWEEN asg.assigment_start_date AND asg.assigment_end_date

AND decode (psa.date_to,to_date('31/12/4712','DD/MM/YYYY'),greatest(trunc(sysdate),psa.date_from),psa.date_to) BETWEEN prt.effective_start_date(+) AND prt.effective_end_date(+)