Bonjour,
J'ai une requête sur oracle qui me semble prendre énormément de temp pour donner un résultat ! j'aimerais trouver une solution pour l'optimiser :
Comment je peux faire SVP ?!
ci joint ma requête :
merci pour votre aide
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 with req as ( select num_compte ,montant, (select sum(0-montant) from d_mouvement_par d where NATURE=3 and cod_evenement='IMM' and d.dte_operation between ret.dte_operation and ret.dte_operation+31 and d.num_compte=ret.num_compte) as montant_retrait from suivi_ret ret) select case when MONTANT >= 3000 and montant_retrait between 2000 and 3000 then 'cas1' when MONTANT >= 5000 and montant_retrait between 3000 and 4000 then 'cas2' when MONTANT >= 8000 and montant_retrait between 4000 and 4000 then 'cas3' when MONTANT >= 10000 and montant_retrait between 4000 and 5000 then 'cas4' when MONTANT >= 10000 and montant_retrait between 5000 and 6000 then 'cas5' when MONTANT >= 10000 and montant_retrait between 2000 and 3000 then 'cas6' end as cas ,count(*) as nobmre_virement from req group by case when MONTANT >= 3000 and montant_retrait between 2000 and 3000 then 'cas1' when MONTANT >= 5000 and montant_retrait between 3000 and 4000 then 'cas2' when MONTANT >= 8000 and montant_retrait between 4000 and 4000 then 'cas3' when MONTANT >= 10000 and montant_retrait between 4000 and 5000 then 'cas4' when MONTANT >= 10000 and montant_retrait between 5000 and 6000 then 'cas5' when MONTANT >= 10000 and montant_retrait between 2000 and 3000 then 'cas6' end;
Partager