SELECT /* 12.0: bug#4526784 */
inner_sup.supervisor_person_id supervisor_person_id
,inner_sup.effective_start_date effective_start_date
,inner_sup.effective_end_date effective_end_date
,inner_sup.job_id job_id
,SUM(inner_sup.headcount) total_headcount
,SUM(inner_sup.anl_slry) total_anl_slry
,MAX(inner_sup.anl_slry) max_anl_slry
,MIN(inner_sup.anl_slry) min_anl_slry
,inner_sup.input_currency_code anl_slry_currency
FROM
(
SELECT suph.sup_person_id supervisor_person_id
, hr_general.start_of_time effective_start_date
, hr_general.end_of_time effective_end_date
, asg.job_id job_id
, hri_bpl_abv.calc_abv(
asg.assignment_id
,asg.business_group_id
,'HEAD'
,pro.change_date
,'Y'
,NULL) headcount
,(ppb.pay_annualization_factor * pro.proposed_salary_n) anl_slry
,pet.input_currency_code input_currency_code
FROM per_all_assignments_f asg
,per_pay_bases ppb
,per_pay_proposals pro
,pay_input_values_f piv
,pay_element_types_f pet
,hri_cs_suph suph
,fii_time_day day
WHERE 1=1
AND suph.sub_person_id = asg.person_id
AND day.start_date BETWEEN suph.effective_start_date AND suph.effective_end_date
AND day.start_date BETWEEN asg.effective_start_date AND asg.effective_end_date
AND asg.assignment_id = pro.assignment_id
AND pro.change_date = (SELECT MAX(change_date)
FROM per_pay_proposals pro2
WHERE pro2.assignment_id = pro.assignment_id
AND pro2.change_date <= day.start_date
AND pro2.approved = 'Y')
AND asg.pay_basis_id = ppb.pay_basis_id
AND ppb.input_value_id = piv.input_value_id
AND pro.change_date BETWEEN piv.effective_start_date AND piv.effective_end_date
AND piv.element_type_id = pet.element_type_id
AND pro.change_date BETWEEN pet.effective_start_date AND pet.effective_end_date
AND day.start_date = TRUNC(sysdate)
) inner_sup
GROUP BY
inner_sup.supervisor_person_id
,inner_sup.effective_start_date
,inner_sup.effective_end_date
,inner_sup.job_id
,inner_sup.input_currency_code