SELECT DISTINCT 'Y' FORECAST_EXISTS_FLAG , SUM1.PROJECT_CURRENCY_CODE Y1 , DENSE_RANK() OVER (ORDER BY SUM1.PROJECT_CURRENCY_CODE ) AS Y1_SEQ , PER.PERIOD_NAME X1 , DENSE_RANK() OVER (ORDER BY PER.START_DATE ) AS X1_SEQ , SUM.VALUE VALUE FROM PA_FCST_PERIODIC_SUM_V SUM , PA_FCST_PERIODS_TMP PER , PA_FCST_PERIODIC_SUM_V SUM1 , (SELECT PA_FCST_GLOBAL.GETPROJFCSTSTARTDATE STARTDATE , PA_FCST_GLOBAL.GETPROJFCSTENDDATE ENDDATE FROM DUAL) FILTERBY WHERE ((PER.START_DATE BETWEEN FILTERBY.STARTDATE AND FILTERBY.ENDDATE) OR (PER.END_DATE BETWEEN FILTERBY.STARTDATE AND FILTERBY.ENDDATE)) AND PER.PERIOD_NAME = SUM.PERIOD_NAME (+) AND SUM1.PERIOD_NAME = NVL(SUM.PERIOD_NAME , SUM1.PERIOD_NAME) UNION ALL SELECT 'N' FORECAST_EXISTS_FLAG , NULL Y1 , 100000 Y1_SEQ , PER.PERIOD_NAME X1 , DENSE_RANK() OVER (ORDER BY PER.START_DATE ) AS X1_SEQ , 0 VALUE FROM PA_FCST_PERIODS_TMP PER , (SELECT PA_FCST_GLOBAL.GETPROJFCSTSTARTDATE STARTDATE , PA_FCST_GLOBAL.GETPROJFCSTENDDATE ENDDATE FROM DUAL) FILTERBY WHERE ((PER.START_DATE BETWEEN FILTERBY.STARTDATE AND FILTERBY.ENDDATE) OR (PER.END_DATE BETWEEN FILTERBY.STARTDATE AND FILTERBY.ENDDATE))