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
| SQL> with SOUSTRAITANCE as (
2 select 'OPEL' as DEMANDEUR, 'M1' as MENAGE, 'L1' as LOGISTIQUE, 'R1' as RESTAURATION from dual union all
3 select 'FORD' , 'M1' , 'L3' , 'R1' from dual
4 ),
5 CHANGEMENTS as (
6 select 'MENAGE' as TYPE, 'M1' as AVANT, 'M2' as APRES, '01/01/2014' as DAT from dual union all
7 select 'RESTAURATION' , 'R1' , 'R2' , '01/07/2013' from dual
8 ),
9 stt2 as (
10 select demandeur, 'MENAGE' as type, MENAGE as val from soustraitance union all
11 select demandeur, 'LOGISTIQUE' as type, LOGISTIQUE as val from soustraitance union all
12 select demandeur, 'RESTAURATION' as type, RESTAURATION as val from soustraitance
13 )
14 select s.demandeur, s.type, c.avant, c.apres, c.dat
15 from stt2 s
16 left join changements c on c.type = s.type and c.avant = s.val
17 order by demandeur, type;
DEMA TYPE AV AP DAT
---- ------------ -- -- ----------
FORD LOGISTIQUE
FORD MENAGE M1 M2 01/01/2014
FORD RESTAURATION R1 R2 01/07/2013
OPEL LOGISTIQUE
OPEL MENAGE M1 M2 01/01/2014
OPEL RESTAURATION R1 R2 01/07/2013
6 rows selected.
SQL> |
Partager