Requete complexe [Résolu/Fermé]

Signaler
Messages postés
20712
Date d'inscription
mercredi 18 avril 2007
Statut
Contributeur
Dernière intervention
14 avril 2021
-
Messages postés
20712
Date d'inscription
mercredi 18 avril 2007
Statut
Contributeur
Dernière intervention
14 avril 2021
-
Bonjour,

J'aurais besoin d'aide pour réaliser une requête.
C'est pas tout ça fait la même chose, mais en gros, ça revient à trier les clients (par nom et pas par Id), en fonction de la date de leur dernière facture/commande
De part la valeur ajoutée de ce genre de requête (recherche de prospect, je suppose que c'est souvent réalisé, mais je bloque au départ...)

un peu d'architecture de la base :
On a la table client :
client
------
id(auto)
nom

et on a la table commande, en relation évidement 1,n (un client peut avoir plusieurs commandes, mais chaque commande a 1 et 1 seul client)
(par simplification, et dans mon cas, un client à obligatoirement une commande)

commande
-----
id(auto)
idclient (foreing)
date

et je veux donc récupérer la liste des clients (je peux avoir d'autres colonnes si obligatoire, je ferais un awk par la suite) dans l'ordre de leur derniere commande, du plus récent au plus ancien

Si un client à commandé plusieurs fois, il ne doit apparaitre qu'une seule fois.

je suppose qu'il y a du group et du having, mais j'avoue que là, je patauge complètement...

Cdt,

Ps : point bonus si la requete est lourde (oui, oui, vous avez bien lui, je dois aussi trouver une requête qui me permete de tester la réactivité de la base, donc j'ai besoin d'une requete un peu lourde).
Je sais qu'on est tous bénévole, mais c'est un peu de la prod, et idéalement j'en aurais besoin aujourd'hui


Par contre, c'est pas vital non plus, je pourrais me débrouiller autrement si j'ai pas de réponse (et je suis de toute façon interessé pour la prochaine fois).




1 réponse

Messages postés
569
Date d'inscription
lundi 29 juillet 2013
Statut
Membre
Dernière intervention
7 mai 2015
72
Salut,

A tester :

SELECT nom, max(commande.date)
FROM client, commande
WHERE client.idclient = commande.idclient
GROUP BY nom
ORDER BY max(commande.date) desc
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
20712
Date d'inscription
mercredi 18 avril 2007
Statut
Contributeur
Dernière intervention
14 avril 2021
1 600
Ca a l'air de faire ce que j'ai demandé...
Reste à savoir si j'ai demandé ce que je voulais :)

Merci beaucoup.