Bonjour,
Je construit une requête devant me lister tous les utilisateurs d'un contrat et s'il y en a eu, leur dernier rendez-vous.
J'ai donc une table Utilisateurs et une table RDV.
J'ai grossièrement cette requête :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT A.ID, A.Nom, A.Prenom, A.Adresse, A..., B.DateRdv, B.Raison, B.Medecin, B.... FROM USERS A LEFT JOIN RDV B ON A.IdUser=B.IdUser
Là, pas de soucis, j'ai ma liste des utilisateurs et leurs rendez-vous, s'il y en a eu. Maintenant je n'arrive pas à sélectionner uniquement leur dernier RDV.
J'ai bien essayé ça :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT A.IdUser, A.Nom, A.Prenom, A.Adresse, A..., B.DateRdv, B.Raison, B.Medecin, B.... FROM USERS A LEFT JOIN RDV B ON A.IdUser=B.IdUser WHERE B.DateRdv= (SELECT MAX(DateRdv) FROM RDV WHERE IdUser=A.IdUser)
Mais ça me sort la liste des utilisateurs ayant eu un RDV ainsi que leur dernier RDV. Ce qui n'est pas exactement ce que je souhaite...
Dans ma sous-requête récupérant la MAX(DateRdv) j'ai bien essayé IdUser=B.IdUser, en pensant qu'il "sélectionnerait" les Id présent dans la table RDV mais ça n'a pas fonctionné non plus.
Je précise que pour des raisons de confidentialité j'ai reproduit le cas de figure, ma requête est plus complexe que cela et doit potentiellement ramener des milliers de lignes de résultat, je cherche donc quelque chose d'assez optimisé.
Si ce n'est pas assez précis ou autre, je reste dispo
En espérant pouvoir résoudre ce cas assez classique, sachez que Google n'a su m'aider, aucune solution trouvé sur le web n'a fonctionné (ou j'ai dû mal appliquer).
Partager