aodot Posté 8 Juillet 2008 Posté 8 Juillet 2008 Bonjour, J'ai une base de données avec des clients (table clients) et des commandes (table commandes). Chaque commande est relié à un id de client. Et un client peut avoir plusieurs commandes. J'aimerais trié les clients selon leurs commandes totales. Mais je ne sais pas quelle méthode utiliser. Auriez vous un début de piste ? Je sais lister les clients et calculer leurs commandes totales mais pas triés selon ce montant total. Merci par avance.
rdd Posté 8 Juillet 2008 Posté 8 Juillet 2008 Bonjour, Un petit ORDER BY SUM(montant_commande) DESC a la fin de ta requete devrait faire l'affaire (Pour trier de la plus grosse commande a la plus petite). Mais si tu dis que tu arrives a avoir les clients et leurs commandes totales tu as juste a faire un ORDER BY (commandes_totales) DESC.
aodot Posté 8 Juillet 2008 Auteur Posté 8 Juillet 2008 (modifié) ouh la je ne pensais pas que ça pouvait etre aussi simple. je teste ça immédiatement et je reviens vers vous. Merci pour votre réponse. EDIT : plus compliqué que prévu ;-) Voila ce que j'ai fait : <?PHP$sql = "SELECT * FROM clients ORDER BY (SELECT sum(prix_total) FROM commandes) ASC";$sql = mysql_query($sql) or die (mysql_error());while($result=mysql_fetch_array($sql)){echo "$result[id] - $result[nom] $result[prenom] - CA : €<br>";}?> Suis je bien parti ou pas ? Merci Modifié 8 Juillet 2008 par aodot
aodot Posté 8 Juillet 2008 Auteur Posté 8 Juillet 2008 Voila après quelques recherche a quoi j'arrive mais ça marche toujours pas... <?PHP$sql = "SELECT * + (SELECT SUM(prix_total) FROM commandes WHERE id_client = t1.id ) AS tot_comm FROM clients t1 ORDER BY tot_comm DESC";$sql = mysql_query($sql) or die (mysql_error());while($result=mysql_fetch_array($sql)){echo "$result[id] - $result[nom] $result[prenom] - CA : $result[tot_comm] €<br>";}?>
Portekoi Posté 8 Juillet 2008 Posté 8 Juillet 2008 Select SUM(prix_Total) as Total, Nom, Prenom, ID from clients Group By Nom, Prenom, ID order by Total Mais si le champ "ID" est unique, cela ne marchera pas. Il faudra l'enlever
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant