bonjour,

je souhaite simplifier la requête suivante grâce à une jointure externe (utilisation du (+) ). J'ai beaucoup de mal à utiliser cet opérateur.

voici la requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
select L.NUM_TOUR				, 
       L.NUM_LIG_TOUR			, 
       C.EMP			   EMP, 
       C.NUM_CONT		    NUM_CONT,
       C.NUM_ART		     NUM_ART, 
       C.NUM_LOT		     NUM_LOT, 
       C.DLUO			  DLUO
  from LIG_TOUR L, CONTENANT C 
 where L.NUM_LIG_TOUR = C.NUM_LIG_TOUR_INV
   and L.TYP_TOUR         = 'INV'
   and L.TYP_REAL         = 'PAPI'
   and L.STYP_TOUR	  = 'ACON'
   and L.ETAT_LIG_TOUR    = 'LANC'
   and not exists (select null
	               from CR_STOCK CR
                    where CR.NUM_TOUR = L.NUM_TOUR
                      and CR.NUM_LIG_TOUR = L.NUM_LIG_TOUR
			              and CR.EMP = C.EMP
		                 and CR.NUM_CONT = C.NUM_CONT
			             and CR.NUM_ORDRE_PREP = to_char((select max(to_number(CR2.NUM_ORDRE_PREP,'9'))
								                             from CR_STOCK CR2
							                                where CR2.NUM_TOUR = L.NUM_TOUR
								                             and CR2.NUM_LIG_TOUR = L.NUM_LIG_TOUR
								                             and CR2.EMP = C.EMP
								                             and CR2.NUM_CONT = C.NUM_CONT
							                           ))
                      and CR.ETAT_CR_STOCK = 'TERM');
merci d'avance pour vos propositions