select fmr_reason,sum(Punjab) Punjab,sum(Haryana) Haryana, sum(Chennai) Chennai From ( select fmr_reason, case when branch_name = 'TRK-Punjab' Then Vehi_cnt End Punjab, case when branch_name = 'TRK-Haryana' Then Vehi_cnt End Haryana, case when branch_name = 'TRK-Chennai' Then Vehi_cnt End Chennai From ( select branch_name,fmr_reason,count(vehicle_number) VEHI_CNT From ( select distinct xh.trans_date,xh.branch_name,xl.vehicle_number,xr.fmr_reason ,xl.attribute1 others_reasons,xh.creation_date,xl.vehicle_type, (select xth.logsheet_period_to from xxsc.xxsc_tls_header xth where trunc(xth.logsheet_period_to) = xl.trans_date and xth.vehicle_number = xl.vehicle_number and xth.organization_id = xl.organization_id ) logsheet_date from xxsc.xxsc_tls_fleet_util_l xl, xxsc.xxsc_tls_fleet_util_h xh, xxsc.xxsc_tls_idle_halt_reasons xr where xh.header_id = xl.header_id and xr.fmr_reason_id = xl.trans_type --and xh.trans_date = :p_to_date and to_date(xh.trans_date,'dd/mm/rrrr') = '05-Dec-2011' order by branch_name,vehicle_number,fmr_reason ) group by branch_name,fmr_reason Order by Branch_name) ) Group by fmr_reason