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 :

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

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 :

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
 
);
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
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
)
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.

Si vous voyez des optimisations dans ma requête actuelle, je suis preneuse également.

D'avance merci pour votre aide