We are running this query on a DB2 database and are wondering if there is anything which can be done to make it run faster?
with temp(id,desk,CUR_MTD_TOTAL
, WTD, CUR_FY_YTD, PRV_MTD_TOTAL, PRV_BUS_DAY,PRV_DAY_AVG, PRV_WEEK_AVG,PRV_MONTH_AVG
, PRV_FY_YTD,CUR_REV_ANN,PRV
_FY,FORECA
ST,TOTAL_Y
TD_ACCRUED
, NEXT_PLAN_PRIM,NEXT_PLAN_S
ECDY,NEXT_
PLAN) as (
select rootoe.row_id,rootoe.name as desk, sum(prev.CUR_MTD_TOTAL), sum(prev.WTD), sum(prev.CUR_FY_REV), sum(prev.PRV_MTD_TOTAL) , sum(prev.PRV_BUS_DAY) , sum(prev.DAILY_AVG) ,sum(prev.WEEKLY_AVG) ,sum(prev.PRV_MONTH_AVG) ,sum(prev.PRV_YTD_REV) ,sum(prev.PRV_FY_REV),sum(
prev.CUR_F
Y_ANN_REV)
,0,0,0,0,0
from cx_matrix_pos tr
inner join cx_revenue prev on prev.postn_id=tr.child_pos
inner join s_org_ext oe on oe.row_id=prev.oe_id
inner join s_postn postn on postn.row_id=tr.child_pos
inner join s_org_ext rootoe on rootoe.row_id=oe.frght_ter
ms_cd
where tr.parent_pos='1-156J4' and oe.FRGHT_TERMS_INFO like 'Investment Advisor' and Ucase(rootoe.name) like '%'
group by rootoe.row_id,rootoe.name
union all
select rootoe.row_id,rootoe.name as desk, 0,0,0,0,0,0,0,0,0,0,0,sum(
bu.forecas
t),sum(bu.
total_ytd_
accrued),0
,0,0
from cx_matrix_pos tr
inner join cx_forecast_fy bu on bu.position_id=tr.child_po
s
inner join cx_fiscal_year fy on fy.fiscal_year=bu.fiscal_y
ear
inner join s_postn postn on postn.row_id=tr.child_pos
inner join s_org_ext oe on oe.row_id=bu.ou_id
inner join s_org_ext rootoe on rootoe.row_id=oe.frght_ter
ms_cd
where tr.parent_pos='1-156J4' and oe.FRGHT_TERMS_INFO like 'Investment Advisor' and Ucase(rootoe.name) like '%'
group by rootoe.row_id,rootoe.name
union all
select rootoe.row_id,rootoe.name as desk, 0,0,0,0,0,0,0,0,0,0,0,0,0,
sum(bu.ni_
forecast),
sum(bu.sec
_forecast)
,sum(bu.fo
recast)
from cx_matrix_pos tr
inner join cx_forecast bu on bu.position_id=tr.child_po
s
inner join s_period per on per.row_id=bu.period_id
inner join s_postn postn on postn.row_id=tr.child_pos
inner join s_org_ext oe on oe.row_id=bu.ou_id
inner join s_org_ext rootoe on rootoe.row_id=oe.frght_ter
ms_cd
where tr.parent_pos='1-156J4' and oe.FRGHT_TERMS_INFO like 'Investment Advisor' and Ucase(rootoe.name) like '%'
and per.desc_text='Fiscal Year 2005'
group by rootoe.row_id,rootoe.name
)
select id,desk, cast(sum(CUR_MTD_TOTAL) as double) as Cur_Month, cast(sum(FORECAST) as double) as Cur_Plan_FY, cast(sum(TOTAL_YTD_ACCRUED
) as double) as Cur_Plan_YTD, cast(sum(WTD) as double) as Cur_Week,cast(sum(CUR_FY_Y
TD) as double) as Cur_YTD, cast(sum(PRV_MTD_TOTAL) as double) as Prv_Month, cast(sum(PRV_BUS_DAY) as double) as Prv_Day,cast(sum(PRV_DAY_A
VG) as double) as Prv_Day_Avg, cast(sum(PRV_WEEK_AVG) as double) as Prv_Week_Avg, cast(sum(PRV_MONTH_AVG) as double) as Prv_Month_Avg,cast(sum(PRV
_FY_YTD) as double) as Prv_YTD ,cast(sum(PRV_FY) as double) as Prv_FY, cast(sum(CUR_REV_ANN) as double) as Cur_Rev_Ann,cast(sum(NEXT_
PLAN_PRIM)
as double) as Next_Plan_Prim, cast(sum(NEXT_PLAN_SECDY) as double) as Next_Plan_Secdy,cast(sum(N
EXT_PLAN) as double) as Next_Plan from temp group by id,desk order by Cur_Ytd desc