Bonjour,
Je reformule, j'ai un select qui me renvoi plusieurs ligne pour un meme ID , il s'agit de contrat , j'ai un Id personne, un Id contrat et des dates de debut / fin.
Je cherche à obtenir le contrat qui a la date de fin la plus récente.
j'ai quelque chose comme cela pour le moment avoir avoir la date plus grande
Select personne_id, max(date_fin) from maTableContrats Where ..... group by personne_id
J'ai besoin de remonter Id du contrat et la date de debut du contrat qui correspondent à ce dernier contrat.
Select personne_id, contrat_id, date_debut, max(date_fin) from maTableContrats Where ..... group by personne_id, contrat_id, date_debut
Ne me renvoi plus et c'est logique la ligne qui a la date de fin de contrat la plus récente mais toutes les lignes.
J'ai vu qu'il me faudrait faire qq chose comme cela avec une sous requête :
1 2 3 4
|
Select personne_id, contrat_id, date_debut, date_fin
from maTableContrats
Where date_fin = (Select max(date_fin) from maTableContrats Where .... group by personne_id) |
Avec les jointures qui vont bien.
Je trouve cette méthode un peu lourde car je vais obtenir une requête assez conséquente du fait une sous requête et requête impliquant beaucoup de jointure. Le résultat devrait fonctionner mais ne sera pas facile à maintenir.
je me demande s'il n'y a pas une autre méthode
Merci à vous
Partager