| 12
 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