Bonjour,
Je sollicite votre aide sur une requête que j'ai du mal à écrire.
J'ai des sociétés qui peuvent avoir des contacts et les contacts peuvent avoir un "dernier résultat".
Lorsque je modifie le "dernier résultat" d'un contact j'enregistre aussi la date de cette modification.
Je souhaiterais récupérer la liste de toutes mes sociétés avec, entre autres, le dernier "dernier résultat" s'il y en a.
J'entend par dernier "dernier résultat" celui dont la date est la plus récente.
J'y arrive bien pour une société donnée :
Mais pour l'ensemble de mes sociétés celà me semble plus compliqué. Je pourrais faire ça salement en récupérant toutes mes sociétés avec une seule requête et pour chacune d'entre elle exécuter une requête pour savoir s'il y a un dernier résultat ou non et lequel si existant mais c'est vraiment quelque chose que j'aimerais éviter si celà est possible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT dr.description, c.nom, c.prenom FROM societe s INNER JOIN contact c ON c.id_societe = s.id INNER JOIN dernierresultat dr ON c.id_dernierresultat = dr.id WHERE s.id = XX and c.datedr = (SELECT max(c.datedr) FROM societe s INNER JOIN contact c ON c.id_societe = s.id WHERE s.id = XX);
Auriez-vous une idée sur la façon de procéder ?
Je vous remercie d'avance pour votre aide
P.S: Désolé pour le titre peu explicite mais je n'arrive pas à synthétiser mon problème en quelques mots.
Partager