Salut,
 
Je ne sais pas si ça fonctionne sous Oracle, mais j'aurai fait :  
 
SELECT VERSION_INSTANCE.*
FROM VERSION_INSTANCE
INNER JOIN (
 SELECT VI.Id_Version_Instance ID, MAX(VI.Date_Validite) MDV
 FROM VERSION_INSTANCE VI
 GROUP BY VI.Id_Version_Instance
 ) DRV ON DRV.ID = VERSION_INSTANCE.Id_Version_Instance
 	AND DRV.MDV = VERSION_INSTANCE.Date_Validite
 
Pour moi, ça doit ressortir toutes les données de chaque VERSION_INSTANCE les plus récentes.
Après, tu dois pouvoir faire ta jointure avec INSTANCE, du genre :  
 
SELECT *
FROM VERSION_INSTANCE
INNER JOIN (
 SELECT VI.Id_Version_Instance ID, MAX(VI.Date_Validite) MDV
 FROM VERSION_INSTANCE VI
 GROUP BY VI.Id_Version_Instance
 ) DRV ON DRV.ID = VERSION_INSTANCE.Id_Version_Instance
 	AND DRV.MDV = VERSION_INSTANCE.Date_Validite
INNER JOIN INSTANCE ON INSTANCE.Id_Instance = VERSION_INSTANCE.Id_Instance
 
Bon courage,
 
Message édité par Tibar le 20-01-2009 à 11:55:22