Bonjour à tous !

J'ai un petit problème, je n'arrive pas à écrire une certaine requête.
Je vous expose le problème :

Ma table est comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
T_TABLE(personne_id, personne_status, personne_date)
Tout simplement.

J'aimerais récupérer tous les enregistrements qui satisfont ces contraintes :

- personne_date <= 'Une date D1'
- je ne veux pas 2 enregistrements tel que enregistrement1.personne_id = enregistrement2.personne_id
- et enfin je veux les enregistrements tel que personne_date soit le plus proche possible de 'Une date D1'


En résumé, je veux un seul enregistrement par personne et que la date soit la plus proche de Date D1 sans dépasser.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT * FROM T_TABLE WHERE PERSONNE_DATE <= 'D1' ORDER BY PERSONNE_DATE DESC
Cette requête me renvoie bien les enregistrements avec personne_date le plus proche de date D1 mais rien ne me garantit que pour chaque personne_id de n'avoir qu'un seul enregistrement.

Pensez vous que cela soit possible en une seule requête??