Bonjour tout le monde,
J'ai fait une requête qui m'affiche les lignes que je cherche mais il me reste un dernier critère de sélection, et celui-ci est plus complexe à obtenir.
Pour l'instant, la requête me génère 14 lignes dont le sujet est pfo_idRattachement.
Chaque pfo_idRattachement se trouve dans la table principale tp_rti, voici l'exemple de lignes :
Je voudrais que ce idRattachement ne fasse PAS partie de mes 14 résultats actuels, car le dernier enregistrement (max(dateorigineFlux)) est différent de 4.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rti_idrattachement ; rti_DateorigineFlux ; rti_actionGlobale_init xxxx ; 20140701 ; 4 xxxx ; 20140702 ; 2 ...
Pour l'instant j'ai fait ceci mais ça ne me semble pas bon :
Requête qui fonctionne mais ne prend pas en compte mon dernier critère de sélection :
Avec le critère en plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select * from bps_bpai.TB_OAI_PAR OAI, bps_bpai.TB_PFO PFO where OAI.pfo_id = PFO.pfo_id and oar_etat = 2 and pfo_idrattachement in ( select distinct(rti.rti_idrattachement) from BPS_PRV.tp_rti rti, BPS_PRV.tp_app app --, tp_sicom com --140992 cas where rti.app_id = app.app_id --and app.sic_id = com.sic_id and app.app_codeapplication = 'ADMINBPS' and rti.rti_actionglobale_init = 4 );
Savez-vous comment je pourrais l'implémenter et par ailleurs de façon optimisée, car ma requête prend déjà pas mal de temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 and pfo_idrattachement not in ( select R.rti_idrattachement from tp_rti R INNER JOIN ( select rti_idrattachement, max(rti_dateorigineflux) AS DateMax FROM tp_rti where rti_actionglobale_init <> 4 group by rti_idrattachement ) temp on R.rti_idrattachement = temp.rti_idrattachement where R.rti_dateorigineflux = temp.DateMax )
Si vous voyez des optimisations dans ma requête actuelle, je suis preneuse également.
D'avance merci pour votre aide
Partager