1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| select
DECODE(arg_no_ordre,0,'courant','ref_' || arg_no_ordre) QUI,
vdsp.KEY_GROUP_1, vdsp.KEY_GROUP_2, vdsp.KEY_GROUP_3, vdsp.KEY_GROUP_4, vs.INFO_KEY_GROUP,
vdsp.CODE_TYPE_SCENARIO, vdsp.CODE_ETAB, vdsp.id_scenario SCENARIO_ID,
vdsp.code_periode_scenario CODE_PERIODE_SCENARIO, vdsp.code_periode CODE_PERIODE_DONNEE,
(case
WHEN vdsp.FLAG_GLODS = '0' THEN vdsp.valeur
WHEN vdsp.FLAG_GLODS = '1'
and vdsp.code_periode_realisee < vdsp.code_periode
THEN vdsp.valeur
WHEN vdsp.FLAG_GLODS = '1'
and vdsp.code_periode_realisee >= vdsp.code_periode
THEN NVL(vdsg.valeur, vdsp.valeur)
WHEN vdsp.FLAG_GLODS is NULL
THEN NVL(vdsg.valeur, '0')
end case) VALEUR_FORECAST
from v_dcg_synt_prev vdsp
full outer join v_dcg_synt_glods vdsg
on vdsp.KEY_GROUP_1 = vdsg.KEY_GROUP_1
and vdsp.KEY_GROUP_2 = vdsg.KEY_GROUP_2
and vdsp.KEY_GROUP_3 = vdsg.KEY_GROUP_3
and vdsp.KEY_GROUP_4 = vdsg.KEY_GROUP_4
and vdsp.INFO_KEY_GROUP = vdsg.INFO_KEY_GROUP
and vdsp.CODE_ETAB = vdsg.CODE_ETAB
and vdsp.CODE_PERIODE = vdsg.CODE_PERIODE
where
vdsp.code_type_scenario = arg_code_type_scenario
and vdsp.code_periode_scenario = arg_code_periode
and vdsp.id_scenario = arg_id_scenario
and vdsp.code_etab = arg_liste_etab
; |
Partager