Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

Messages: 36

Enregistré le: 2 Aoû 2005

Message le Mer Aoû 09, 2006 16:56

Bonjour,

Je souhaiterai pouvoir trier par ordre décroissant (du plus grand au plus petit) la somme d'un champ d'une table. J'ai lu sur cette page http://mysql.com/doc/refman/5.0/fr/group-by-modifiers.html que l'on pouvait grouper les champs d'une table grâce à GROUP BY mais comment faire pour afficher du plus grand au plus petit la somme de plusieurs champs ?

Par exemple la requête ci-dessous trie les années, mais comment faire pour trier du plus grand au plus petit le "sum_profit" ?
mysql> SELECT year, country, product, SUM(profit) AS sum_profit
-> FROM sales
-> GROUP BY year, country, product;
+------+---------+------------+-------------+
| year | country | product | sum_profit |
+------+---------+------------+-------------+
| 2000 | Finland | Computer | 1500 |
| 2000 | Finland | Phone | 100 |
| 2000 | India | Calculator | 150 |
| 2000 | India | Computer | 1200 |
| 2000 | USA | Calculator | 75 |
| 2000 | USA | Computer | 1500 |
| 2001 | Finland | Phone | 10 |
| 2001 | USA | Calculator | 50 |
| 2001 | USA | Computer | 2700 |
| 2001 | USA | TV | 250 |
+------+---------+------------+-------------+



Si l'on rajoute un « ORDER BY sum_profit DESC » après le GROUP BY ça ne marche pas non plus !

D'avance merci pour vos réponses.
Modifié en dernier par marcuscollins le Jeu Aoû 10, 2006 16:39, modifié 1 fois.
Haut
2 Réponses
Messages: 92

Enregistré le: 23 Mai 2005

Message le Mer Aoû 09, 2006 21:29

Salut,

je ne suis pas pro en sql mais je crois que tu ne peux pas mettre plusieurs "trucs" avec SUM. Je l'avais lu dans un autre tuto

donc

mysql> SELECT year, country, product, SUM(profit) AS sum_profit
ne marche pas. Il faudrait faire d'abord un
mysql> SELECT = SUM(profit) AS sum_profit WHERE...

puis dans un second <?php ... ?> mysql> : SELECT year, country, product, etc...

essaies et dis moi si ça marche. Moi, perso, je décompose en plusieurs <?php...?> et ça fonctionne

J'espère ne pas dire trop de conneries au yeux des pros de ce forum
Haut
Messages: 36

Enregistré le: 2 Aoû 2005

Message le Jeu Aoû 10, 2006 16:44

Merci animus pour ta réponse.

Théoriquement la requête ci-dessous doit fonctionner car je l'ai prise sur le tutoriel de mysql.com

SELECT year, country, product, SUM(profit) AS sum_profit
-> FROM sales
-> GROUP BY year, country, product;


J'ai essayé pas mal de solution pour essayer de trier du plus grand résultat au plus petit le "sum_profit" mais ça ne marche pas, même en rajoutant après le GROUP BY un « ORDER BY sum_profit DESC » , ça ne marche pas non plus, quelqu'un a-t-il une idée ?
Haut

Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.