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