| 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
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 
 |  
 
  -- si le trinôme code chaîne, code chantier et code établissement (ch_code, ct_code et et_code de TMP_CHANTIER) 
    -- existent dans la table COMPOSITION_CHAINE (via id_chaine, id_chantier_directuer, id_ca et id_ctc)
 
    select tcc.ch_code,
           tcc.ct_code,
           tcc.et_code,
           ch.id_chaine,
      	   ca.id_ca,
      	   cd.id_chantier_directeur,
      	   c.id_ctc
    from tmp_composition_chaine tcc, composition_chaine cc, chaine ch, chantier_annexe ca, chantier_directeur cd, ctc c, tmp_chantier tc
    where tc.ct_code = tcc.ct_code      
      and tcc.ch_code = ch.code_chaine and ch.id_chaine = cc.id_chaine 
      and cc.date_fin is null
      and ca.date_fin is null
      and cd.date_fin is null
      and ch.date_fin is null
      and c.date_suppression is null
      and tcc.ct_code = ca.code_ca(+) 
      and ((ca.id_ca is not null and ca.id_ca = cc.id_ca) or (ca.id_ca is null))     
      and tcc.ct_code = cd.code_cd(+) 
      and ((cc.id_chantier_directeur is not null and cd.id_chantier_directeur = cc.id_chantier_directeur) or (cd.id_chantier_directeur is null))
      and ( tcc.et_code = c.code_ctc and c.id_ctc = cc.id_ctc )  
 
    UNION 
    -- si le trinôme code chaîne, code chantier et code établissement (ch_code, ct_code et et_code de TMP_CHANTIER) 
    -- n'existent pas dans la table COMPOSITION_CHAINE (via id_chaine, id_chantier_directuer, id_ca et id_ctc)
    select tcc.ch_code,
           tcc.ct_code,
           tcc.et_code,
           ch.id_chaine,
      	   ca.id_ca,
      	   cd.id_chantier_directeur,
      	   c.id_ctc
    from tmp_composition_chaine tcc, tmp_chantier tc, ctc c, chantier_directeur cd, chantier_annexe ca, chaine ch
    where tcc.et_code = c.code_ctc
      and tc.ct_code = tcc.ct_code
      and c.date_suppression is null
      and ca.date_fin is null
      and cd.date_fin is null
      and ch.date_fin is null
      and tcc.ct_code = ca.code_ca(+) 
      and tcc.ct_code = cd.code_cd(+) 
      and tcc.ch_code = ch.code_chaine
          -- ch_code (TMP_COMPOSITION_CHAINE) est présent dans la table TMP_CHAINE
      and tcc.ch_code in (select ch_code from tmp_chaine tch where tch.ch_code = tcc.ch_code)
          -- ct_code (TMP_COMPOSITION_CHAINE) est présent dans la table TMP_CHANTIER
      and tcc.ct_code in (select ct_code from tmp_chantier tc where tc.ct_code = tcc.ct_code)
          -- si ct_type_local (TMP_CHANTIER) du ct_code de TMP_COMPOSITION_CHAINE est égale à 'D', co_fl_amont_aval 
          -- (TMP_COMPOSITION_CHAINE) est égale à 'D'
      and tc.ct_type_local = tcc.co_fl_amont_aval
      and tcc.co_no_ordre is not null 
      and tcc.co_coeff_bcl is not null | 
Partager