Product: | PA - Projects |
---|---|
Description: | This view is used in Financial Planning webadi download to get start date and end date for each periods based on period masks. |
Implementation/DBA Data: |
![]() |
SELECT A.BUDGET_VERSION_ID BUDGET_VERSION_ID
, A.PERIOD_MASK_ID PERIOD_MASK_ID
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 1
, A.START_DATE
, NULL))) PRDSD1
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 1
, A.END_DATE
, NULL))) PRDED1
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 2
, A.START_DATE
, NULL))) PRDSD2
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 2
, A.END_DATE
, NULL))) PRDED2
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 3
, A.START_DATE
, NULL))) PRDSD3
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 3
, A.END_DATE
, NULL))) PRDED3
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 4
, A.START_DATE
, NULL))) PRDSD4
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 4
, A.END_DATE
, NULL))) PRDED4
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 5
, A.START_DATE
, NULL))) PRDSD5
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 5
, A.END_DATE
, NULL))) PRDED5
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 6
, A.START_DATE
, NULL))) PRDSD6
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 6
, A.END_DATE
, NULL))) PRDED6
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 7
, A.START_DATE
, NULL))) PRDSD7
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 7
, A.END_DATE
, NULL))) PRDED7
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 8
, A.START_DATE
, NULL))) PRDSD8
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 8
, A.END_DATE
, NULL))) PRDED8
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 9
, A.START_DATE
, NULL))) PRDSD9
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 9
, A.END_DATE
, NULL))) PRDED9
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 10
, A.START_DATE
, NULL))) PRDSD10
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 10
, A.END_DATE
, NULL))) PRDED10
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 11
, A.START_DATE
, NULL))) PRDSD11
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 11
, A.END_DATE
, NULL))) PRDED11
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 12
, A.START_DATE
, NULL))) PRDSD12
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 12
, A.END_DATE
, NULL))) PRDED12
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 13
, A.START_DATE
, NULL))) PRDSD13
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 13
, A.END_DATE
, NULL))) PRDED13
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 14
, A.START_DATE
, NULL))) PRDSD14
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 14
, A.END_DATE
, NULL))) PRDED14
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 15
, A.START_DATE
, NULL))) PRDSD15
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 15
, A.END_DATE
, NULL))) PRDED15
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 16
, A.START_DATE
, NULL))) PRDSD16
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 16
, A.END_DATE
, NULL))) PRDED16
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 17
, A.START_DATE
, NULL))) PRDSD17
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 17
, A.END_DATE
, NULL))) PRDED17
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 18
, A.START_DATE
, NULL))) PRDSD18
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 18
, A.END_DATE
, NULL))) PRDED18
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 19
, A.START_DATE
, NULL))) PRDSD19
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 19
, A.END_DATE
, NULL))) PRDED19
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 20
, A.START_DATE
, NULL))) PRDSD20
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 20
, A.END_DATE
, NULL))) PRDED20
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 21
, A.START_DATE
, NULL))) PRDSD21
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 21
, A.END_DATE
, NULL))) PRDED21
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 22
, A.START_DATE
, NULL))) PRDSD22
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 22
, A.END_DATE
, NULL))) PRDED22
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 23
, A.START_DATE
, NULL))) PRDSD23
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 23
, A.END_DATE
, NULL))) PRDED23
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 24
, A.START_DATE
, NULL))) PRDSD24
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 24
, A.END_DATE
, NULL))) PRDED24
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 25
, A.START_DATE
, NULL))) PRDSD25
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 25
, A.END_DATE
, NULL))) PRDED25
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 26
, A.START_DATE
, NULL))) PRDSD26
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 26
, A.END_DATE
, NULL))) PRDED26
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 27
, A.START_DATE
, NULL))) PRDSD27
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 27
, A.END_DATE
, NULL))) PRDED27
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 28
, A.START_DATE
, NULL))) PRDSD28
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 28
, A.END_DATE
, NULL))) PRDED28
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 29
, A.START_DATE
, NULL))) PRDSD29
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 29
, A.END_DATE
, NULL))) PRDED29
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 30
, A.START_DATE
, NULL))) PRDSD30
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 30
, A.END_DATE
, NULL))) PRDED30
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 31
, A.START_DATE
, NULL))) PRDSD31
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 31
, A.END_DATE
, NULL))) PRDED31
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 32
, A.START_DATE
, NULL))) PRDSD32
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 32
, A.END_DATE
, NULL))) PRDED32
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 33
, A.START_DATE
, NULL))) PRDSD33
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 33
, A.END_DATE
, NULL))) PRDED33
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 34
, A.START_DATE
, NULL))) PRDSD34
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 34
, A.END_DATE
, NULL))) PRDED34
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 35
, A.START_DATE
, NULL))) PRDSD35
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 35
, A.END_DATE
, NULL))) PRDED35
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 36
, A.START_DATE
, NULL))) PRDSD36
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 36
, A.END_DATE
, NULL))) PRDED36
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 37
, A.START_DATE
, NULL))) PRDSD37
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 37
, A.END_DATE
, NULL))) PRDED37
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 38
, A.START_DATE
, NULL))) PRDSD38
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 38
, A.END_DATE
, NULL))) PRDED38
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 39
, A.START_DATE
, NULL))) PRDSD39
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 39
, A.END_DATE
, NULL))) PRDED39
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 40
, A.START_DATE
, NULL))) PRDSD40
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 40
, A.END_DATE
, NULL))) PRDED40
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 41
, A.START_DATE
, NULL))) PRDSD41
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 41
, A.END_DATE
, NULL))) PRDED41
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 42
, A.START_DATE
, NULL))) PRDSD42
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 42
, A.END_DATE
, NULL))) PRDED42
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 43
, A.START_DATE
, NULL))) PRDSD43
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 43
, A.END_DATE
, NULL))) PRDED43
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 44
, A.START_DATE
, NULL))) PRDSD44
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 44
, A.END_DATE
, NULL))) PRDED44
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 45
, A.START_DATE
, NULL))) PRDSD45
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 45
, A.END_DATE
, NULL))) PRDED45
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 46
, A.START_DATE
, NULL))) PRDSD46
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 46
, A.END_DATE
, NULL))) PRDED46
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 47
, A.START_DATE
, NULL))) PRDSD47
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 47
, A.END_DATE
, NULL))) PRDED47
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 48
, A.START_DATE
, NULL))) PRDSD48
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 48
, A.END_DATE
, NULL))) PRDED48
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 49
, A.START_DATE
, NULL))) PRDSD49
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 49
, A.END_DATE
, NULL))) PRDED49
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 50
, A.START_DATE
, NULL))) PRDSD50
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 50
, A.END_DATE
, NULL))) PRDED50
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 51
, A.START_DATE
, NULL))) PRDSD51
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 51
, A.END_DATE
, NULL))) PRDED51
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 52
, A.START_DATE
, NULL))) PRDSD52
, MIN((DECODE((A.FROM_ANCHOR_POSITION- B.MIN_ANCHOR +1)
, 52
, A.END_DATE
, NULL))) PRDED52
FROM (SELECT PFO.FIN_PLAN_VERSION_ID BUDGET_VERSION_ID
, PMD.PERIOD_MASK_ID
, GLSD.START_DATE
, GLED.END_DATE
, GLCP.PERIOD_TYPE
, DECODE(GLSD.PERIOD_NAME
, GLED.PERIOD_NAME
, GLED.PERIOD_NAME
, GLSD.PERIOD_NAME ||' TO '||GLED.PERIOD_NAME) PERIOD_NAME
, PMD.FROM_ANCHOR_POSITION FROM_ANCHOR_POSITION
FROM PA_FP_PERIODS_V GLSD
, PA_FP_PERIODS_V GLED
, PA_FP_PERIODS_V GLCP
, PA_PERIOD_MASK_DETAILS PMD
, PA_PROJ_FP_OPTIONS PFO
, PA_PROJECTS_ALL PPA
WHERE PFO.FIN_PLAN_VERSION_ID IS NOT NULL
AND PPA.PROJECT_ID = PFO.PROJECT_ID
AND PMD.PERIOD_MASK_ID=NVL(PFO.COST_PERIOD_MASK_ID
, NVL(REV_PERIOD_MASK_ID
, ALL_PERIOD_MASK_ID))
AND GLCP.PERIOD_NAME=NVL(PFO.COST_CURRENT_PLANNING_PERIOD
, NVL(REV_CURRENT_PLANNING_PERIOD
, ALL_CURRENT_PLANNING_PERIOD))
AND GLCP.ORG_ID = PPA.ORG_ID
AND GLSD.ORG_ID = GLCP.ORG_ID
AND GLED.ORG_ID = GLCP.ORG_ID
AND GLSD.ROW_NUM=PMD.FROM_ANCHOR_START+GLCP.ROW_NUM
AND GLED.ROW_NUM=PMD.FROM_ANCHOR_END+GLCP.ROW_NUM
AND PMD.FROM_ANCHOR_POSITION NOT IN (9999
, -9999)
AND GLCP.PERIOD_TYPE=DECODE(NVL(PFO.COST_TIME_PHASED_CODE
, NVL(PFO.REVENUE_TIME_PHASED_CODE
, PFO.ALL_TIME_PHASED_CODE))
, 'P'
, GLCP.PA_PERIOD_TYPE
, 'G'
, GLCP.ACCOUNTED_PERIOD_TYPE)
AND GLSD.PERIOD_TYPE=GLCP.PERIOD_TYPE
AND GLED.PERIOD_TYPE=GLSD.PERIOD_TYPE) A
, (SELECT PERIOD_MASK_ID
, MIN(FROM_ANCHOR_POSITION) MIN_ANCHOR
FROM PA_PERIOD_MASK_DETAILS PMD2
WHERE PMD2.FROM_ANCHOR_POSITION NOT IN (9999
, -99999) GROUP BY PMD2.PERIOD_MASK_ID ) B
WHERE A.PERIOD_MASK_ID=B.PERIOD_MASK_ID GROUP BY A.BUDGET_VERSION_ID
, A.PERIOD_MASK_ID