Hi, Cost plan and Budget plan data is stored in the same table. but benefit plan is stored in different table. I havedeveloped the below query which is used to fecthing record for all possible scenarios. -- Cost plan details (Total Unit, Total Cost, Total Revenue) SELECT INV.CODE "Investment ID",INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type",STRT.START_DATE "Plan StartPeriod",END_DATE.END_DATE-1 "Plan End Period", GRP_BY.NAME "Group By",SUB_GRP_BY.NAME "Sub Group By",IS_PLAN_OF_RECORD "Planof Record",TOTAL_UNITS "Total Units",TOTAL_COST "Total Cost",TOTAL_REVENUE "Total Revenue"
FROM INV_INVESTMENTS INV, FIN_PLANS PLAN, ODF_CA_COSTPLAN ODF, BIZ_COM_PERIODS STRT,BIZ_COM_PERIODS END_DATE,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') GRP_BY,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') SUB_GRP_BY WHERE INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID AND PLAN.ID = ODF.ID AND PLAN_TYPE_CODE='FORECAST'
AND STRT.ID=START_PERIOD_ID AND END_DATE.ID=END_PERIOD_ID AND GRP_BY.LOOKUP_CODE =PLAN_BY_1_CODE ANDSUB_GRP_BY.LOOKUP_CODE=PLAN_BY_2_CODE AND IS_PLAN_OF_RECORD=1 AND INV.CODE = '09000002' -- Benefit plan details (Total Benefit, Actual Benefit, Billing Benefit) SELECT INV.CODE "Investment ID",INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",NVL(PLAN.PLAN_TYPE_CODE,'Benefit') "Type of Plan",PERIOD_TYPE_CODE "Period Type",STRT.START_DATE"Plan Start Period",END_DATE.END_DATE-1 "Plan End Period", IS_PLAN_OF_RECORD "Plan of Record",TOTAL_BENEFIT "Benefit",TOTAL_ACTUAL_BENEFIT "Actual Benefit", TOTAL_BILLING_BENEFIT "Billing Benefit"
FROM INV_INVESTMENTS INV, FIN_PLANS PLAN, ODF_CA_BENEFITPLAN ODF, BIZ_COM_PERIODS STRT,BIZ_COM_PERIODS END_DATE WHEREINV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID AND PLAN.ID = ODF.ID AND PLAN_TYPE_CODE IS NULL
AND STRT.ID=START_PERIOD_ID AND END_DATE.ID=END_PERIOD_ID AND IS_PLAN_OF_RECORD=1 AND INV.CODE = '09000002' -- Budget plan details (Total Unit, Total Cost, Total Revenue)SELECT INV.CODE "Investment ID",INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type",STRT.START_DATE "Plan StartPeriod",END_DATE.END_DATE-1 "Plan End Period", GRP_BY.NAME "Group By",SUB_GRP_BY.NAME "Sub Group By",IS_PLAN_OF_RECORD "Planof Record",TOTAL_UNITS "Total Units",TOTAL_COST "Total Cost",TOTAL_REVENUE "Total Revenue"
FROM INV_INVESTMENTS INV, FIN_PLANS PLAN, ODF_CA_COSTPLAN ODF, BIZ_COM_PERIODS STRT,BIZ_COM_PERIODS END_DATE,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') GRP_BY,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') SUB_GRP_BY WHEREINV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID AND PLAN.ID = ODF.ID AND PLAN_TYPE_CODE='BUDGET'
AND STRT.ID=START_PERIOD_ID AND END_DATE.ID=END_PERIOD_ID AND GRP_BY.LOOKUP_CODE =PLAN_BY_1_CODE ANDSUB_GRP_BY.LOOKUP_CODE=PLAN_BY_2_CODE AND IS_PLAN_OF_RECORD=1 AND INV.CODE = '09000002'-- Cost plan details (Total Benefit, Actual Benefit, Billing Benefit) based on month (Group by Month) SELECT COST."Investment ID",COST."Investment Name",COST."Investment Type",COST."Plan ID",COST."Plan Name",COST."Type ofPlan",COST."Period Type",COST."Plan of Record",
GRP_BY.NAME "Group By",SUB_GRP_BY.NAME "Sub Group By",BIZ.PERIOD_NAME,nvl(UNIT.SLICE,0) "Units", nvl(COST.SLICE,0) "Cost",nvl(REVENUE.SLICE,0) "Revenue" FROM
(SELECT INV.CODE "Investment ID",ENTITY_CODE,INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type"
,IS_PLAN_OF_RECORD "Plan of Record",PLAN_BY_1_CODE,PLAN_BY_2_CODE,SSL.START_DATE,SSL.FINISH_DATE,ROUND((SSL.FINISH_DATE-SSL.START_DATE)*SUM(SSL.SLICE),2) SLICE FROM ODF_SSL_CST_DTL_COST SSL, INV_INVESTMENTS INV, FIN_PLANS PLAN,FIN_COST_PLAN_DETAILS DETAILS WHERE INV.CODE = '09000002' AND INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID ANDPLAN.ID = DETAILS.PLAN_ID AND DETAILS.ID = SSL.PRJ_OBJECT_ID AND PLAN_TYPE_CODE = 'FORECAST'
AND IS_PLAN_OF_RECORD=1 GROUP BY INV.CODE,INV.NAME,INV.ODF_OBJECT_CODE,PLAN.CODE,PLAN.NAME,PLAN.PLAN_TYPE_CODE,PERIOD_TYPE_CODE,
IS_PLAN_OF_RECORD,ENTITY_CODE,START_DATE,FINISH_DATE,PLAN_BY_2_CODE,(SSL.START_DATE-SSL.FINISH_DATE),PLAN_BY_1_CODE) COST,
(SELECT INV.CODE "Investment ID",ENTITY_CODE,INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type"
,IS_PLAN_OF_RECORD "Plan of Record",PLAN_BY_1_CODE,PLAN_BY_2_CODE,SSL.START_DATE,SSL.FINISH_DATE,ROUND((SSL.FINISH_DATE-SSL.START_DATE)*SUM(SSL.SLICE),2) SLICE FROM ODF_SSL_CST_DTL_UNITS SSL, INV_INVESTMENTS INV, FIN_PLANS PLAN,FIN_COST_PLAN_DETAILS DETAILS WHERE INV.CODE = '09000002' AND INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID ANDPLAN.ID = DETAILS.PLAN_ID AND DETAILS.ID = SSL.PRJ_OBJECT_ID AND PLAN_TYPE_CODE = 'FORECAST'
AND IS_PLAN_OF_RECORD=1 GROUP BY ENTITY_CODE,INV.CODE,INV.NAME,INV.ODF_OBJECT_CODE,PLAN.CODE,PLAN.NAME,PLAN.PLAN_TYPE_CODE,PERIOD_TYPE_CODE,
IS_PLAN_OF_RECORD,PLAN_BY_1_CODE,PLAN_BY_2_CODE,START_DATE,FINISH_DATE,(SSL.START_DATE-SSL.FINISH_DATE)) UNIT,
(SELECT ENTITY_CODE,INV.CODE "Investment ID",INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type"
,IS_PLAN_OF_RECORD "Plan of Record",PLAN_BY_1_CODE,PLAN_BY_2_CODE,SSL.START_DATE,SSL.FINISH_DATE,ROUND((SSL.FINISH_DATE-SSL.START_DATE)*SUM(SSL.SLICE),2) SLICE FROM ODF_SSL_CST_DTL_REV SSL, INV_INVESTMENTS INV, FIN_PLANS PLAN,FIN_COST_PLAN_DETAILS DETAILS WHERE INV.CODE = '09000002' AND INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID ANDPLAN.ID = DETAILS.PLAN_ID AND DETAILS.ID = SSL.PRJ_OBJECT_ID AND PLAN_TYPE_CODE = 'FORECAST'
AND IS_PLAN_OF_RECORD=1 GROUP BY ENTITY_CODE,INV.CODE,INV.NAME,INV.ODF_OBJECT_CODE,PLAN.CODE,PLAN.NAME,PLAN.PLAN_TYPE_CODE,PERIOD_TYPE_CODE,
IS_PLAN_OF_RECORD,START_DATE,FINISH_DATE,PLAN_BY_1_CODE,PLAN_BY_2_CODE,(SSL.START_DATE-SSL.FINISH_DATE)) REVENUE,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') GRP_BY,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') SUB_GRP_BY,
ENTITY ENT,BIZ_COM_PERIODS BIZ
WHERE COST."Plan ID"=unit."Plan ID"(+) and cost.start_date=unit.start_date(+)
AND COST."Plan ID"=REVENUE."Plan ID"(+) and cost.start_date=REVENUE.start_date(+)
AND GRP_BY.LOOKUP_CODE =COST.PLAN_BY_1_CODE AND SUB_GRP_BY.LOOKUP_CODE=COST.PLAN_BY_2_CODE AND COST.ENTITY_CODE=ENT.ENTITY
AND BIZ.START_DATE=COST.START_DATE AND BIZ.ENTITY_ID=ENT.ID -- Benefit plan details (Total Benefit, Actual Benefit, Billing Benefit) based on month (Group by Month) SELECT INV.CODE "Investment ID",INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "Plan
ID",PLAN.NAME "Plan Name",NVL(PLAN.PLAN_TYPE_CODE,'Benefit') "Type of Plan",PERIOD_TYPE_CODE "Period Type",
PERIOD1.PERIOD_NAME "Period Name",SSL.BENEFIT "Benefit",SSL.ACTUAL_BENEFIT "Actual Benefit", SSL.VARAINCE "Variance"
FROM (SELECT BFT.PRJ_OBJECT_ID,BFT.START_DATE,ROUND((BFT.FINISH_DATE-BFT.START_DATE)*BFT.SLICE,2) BENEFIT,NVL(ROUND((AFBT.FINISH_DATE-AFBT.START_DATE)*AFBT.SLICE,2),0) ACTUAL_BENEFIT,
(ROUND((BFT.FINISH_DATE-BFT.START_DATE)*BFT.SLICE,2)-(NVL(ROUND((AFBT.FINISH_DATE-AFBT.START_DATE)*AFBT.SLICE,2),0)))VARAINCE FROM ODF_SSL_BFT_DTL_BFT BFT,ODF_SSL_BFT_DTL_ABFT AFBT WHERE BFT.START_DATE=AFBT.START_DATE(+)) SSL, INV_INVESTMENTSINV, FIN_PLANS PLAN, FIN_BENEFIT_PLAN_DETAILS DETAILS, ENTITY ENT,
BIZ_COM_PERIODS PERIOD,BIZ_COM_PERIODS PERIOD1 WHERE INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID AND PLAN.ID= DETAILS.PLAN_ID AND
DETAILS.ID = SSL.PRJ_OBJECT_ID AND PLAN_TYPE_CODE IS NULL AND PERIOD.ID=START_PERIOD_ID
AND ENTITY_CODE=ENT.ENTITY AND PERIOD1.START_DATE=SSL.START_DATE AND PERIOD1.ENTITY_ID=ENT.ID AND IS_PLAN_OF_RECORD=1 AND INV.CODE = '09000002' -- Budget plan details (Total Unit, Total Cost, Total Revenue) based on month (Group by Month)SELECT COST."Investment ID",COST."Investment Name",COST."Investment Type",COST."Plan ID",COST."Plan Name",COST."Type ofPlan",COST."Period Type",COST."Plan of Record",
GRP_BY.NAME "Group By",SUB_GRP_BY.NAME "Sub Group By",BIZ.PERIOD_NAME,nvl(UNIT.SLICE,0) "Units", nvl(COST.SLICE,0) "Cost",nvl(REVENUE.SLICE,0) "Revenue" FROM
(SELECT INV.CODE "Investment ID",ENTITY_CODE,INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type"
,IS_PLAN_OF_RECORD "Plan of Record",PLAN_BY_1_CODE,PLAN_BY_2_CODE,SSL.START_DATE,SSL.FINISH_DATE,ROUND((SSL.FINISH_DATE-SSL.START_DATE)*SUM(SSL.SLICE),2) SLICE FROM ODF_SSL_CST_DTL_COST SSL, INV_INVESTMENTS INV, FIN_PLANS PLAN,FIN_COST_PLAN_DETAILS DETAILS WHERE INV.CODE = '09000002' AND INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID ANDPLAN.ID = DETAILS.PLAN_ID AND DETAILS.ID = SSL.PRJ_OBJECT_ID AND PLAN_TYPE_CODE = 'BUDGET'
AND IS_PLAN_OF_RECORD=1 GROUP BY INV.CODE,INV.NAME,INV.ODF_OBJECT_CODE,PLAN.CODE,PLAN.NAME,PLAN.PLAN_TYPE_CODE,PERIOD_TYPE_CODE,
IS_PLAN_OF_RECORD,ENTITY_CODE,START_DATE,FINISH_DATE,PLAN_BY_2_CODE,(SSL.START_DATE-SSL.FINISH_DATE),PLAN_BY_1_CODE) COST,
(SELECT INV.CODE "Investment ID",ENTITY_CODE,INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type"
,IS_PLAN_OF_RECORD "Plan of Record",PLAN_BY_1_CODE,PLAN_BY_2_CODE,SSL.START_DATE,SSL.FINISH_DATE,ROUND((SSL.FINISH_DATE-SSL.START_DATE)*SUM(SSL.SLICE),2) SLICE FROM ODF_SSL_CST_DTL_UNITS SSL, INV_INVESTMENTS INV, FIN_PLANS PLAN,FIN_COST_PLAN_DETAILS DETAILS WHERE INV.CODE = '09000002' AND INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID ANDPLAN.ID = DETAILS.PLAN_ID AND DETAILS.ID = SSL.PRJ_OBJECT_ID AND PLAN_TYPE_CODE = 'BUDGET'
AND IS_PLAN_OF_RECORD=1 GROUP BY ENTITY_CODE,INV.CODE,INV.NAME,INV.ODF_OBJECT_CODE,PLAN.CODE,PLAN.NAME,PLAN.PLAN_TYPE_CODE,PERIOD_TYPE_CODE,
IS_PLAN_OF_RECORD,PLAN_BY_1_CODE,PLAN_BY_2_CODE,START_DATE,FINISH_DATE,(SSL.START_DATE-SSL.FINISH_DATE)) UNIT,
(SELECT ENTITY_CODE,INV.CODE "Investment ID",INV.NAME "Investment Name",INV.ODF_OBJECT_CODE "Investment Type",PLAN.CODE "PlanID",PLAN.NAME "Plan Name",PLAN.PLAN_TYPE_CODE "Type of Plan",PERIOD_TYPE_CODE "Period Type"
,IS_PLAN_OF_RECORD "Plan of Record",PLAN_BY_1_CODE,PLAN_BY_2_CODE,SSL.START_DATE,SSL.FINISH_DATE,ROUND((SSL.FINISH_DATE-SSL.START_DATE)*SUM(SSL.SLICE),2) SLICE FROM ODF_SSL_CST_DTL_REV SSL, INV_INVESTMENTS INV, FIN_PLANS PLAN,FIN_COST_PLAN_DETAILS DETAILS WHERE INV.CODE = '09000002' AND INV.ODF_OBJECT_CODE = 'project' AND INV.ID = PLAN.OBJECT_ID ANDPLAN.ID = DETAILS.PLAN_ID AND DETAILS.ID = SSL.PRJ_OBJECT_ID AND PLAN_TYPE_CODE = 'BUDGET'
AND IS_PLAN_OF_RECORD=1 GROUP BY ENTITY_CODE,INV.CODE,INV.NAME,INV.ODF_OBJECT_CODE,PLAN.CODE,PLAN.NAME,PLAN.PLAN_TYPE_CODE,PERIOD_TYPE_CODE,
IS_PLAN_OF_RECORD,START_DATE,FINISH_DATE,PLAN_BY_1_CODE,PLAN_BY_2_CODE,(SSL.START_DATE-SSL.FINISH_DATE)) REVENUE,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') GRP_BY,
(SELECT LOOKUP_CODE,NAME FROM CMN_LOOKUPS_V WHERE LOOKUP_TYPE='FIN_PLAN_BY_TYPE' AND LANGUAGE_CODE='en') SUB_GRP_BY,
ENTITY ENT,BIZ_COM_PERIODS BIZ
WHERE COST."Plan ID"=unit."Plan ID"(+) and cost.start_date=unit.start_date(+)
AND COST."Plan ID"=REVENUE."Plan ID"(+) and cost.start_date=REVENUE.start_date(+)
AND GRP_BY.LOOKUP_CODE =COST.PLAN_BY_1_CODE AND SUB_GRP_BY.LOOKUP_CODE=COST.PLAN_BY_2_CODE AND COST.ENTITY_CODE=ENT.ENTITY
AND BIZ.START_DATE=COST.START_DATE AND BIZ.ENTITY_ID=ENT.ID ThanksSenthil.