Version complète: sur le forum Webmaster Hub : Requete SQL avec somme et tri des résultas
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
aodot
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
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
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 :

CODE
<?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 : &euro;<br>";
}
?>


Suis je bien parti ou pas ?

Merci
aodot
Voila après quelques recherche a quoi j'arrive mais ça marche toujours pas...

CODE
<?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] &euro;<br>";
}
?>
Portekoi
SQL
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
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.