Bonjour,

j'utilise SQL Developper sur une base Oracle.
j'ai une table de transformateurs électriques et une table de mouvements sur ces transformateurs
un transformateur peut avoir 0 à n mouvements
Je veux récupérer l'intégralité de mes transfos, et si le transfo possède au moins un mouvement, récupérer le mouvement le plus récent

pour joindre mes 2 tables, j'ai fait au plus simple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
select
  transfo.CODE, 
  transfo.ANNEE_FABRICATION, 
  transfo.FABRICANT, 
  mvt.code_mouvement, 
  mvt.date_mouvement, 
  mvt.motif_mouvement,
from E_TRANSFORMATEUR transfo,  e_mouvement_transformateur mvt
where transfo.id = mvt.e_transformateur(+)
ça, ça fonctionne.

mais pour récupérer uniquement le dernier mvt, je voudrais y ajouter cette clause tout en restant sur une jointure externe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
and mvt.date_mouvement 
in (select max(mvt2.date_mouvement) 
     from e_mouvement_transformateur mvt2 
     where transfo.id = mvt2.e_transformateur )
Et là je sèche... ou dois-je ajouter le "(+)" ?