MYSQL afficher 10 informations par catégorie

Fermé
Elisisql - 31 août 2011 à 20:44
 Elisisql - 1 sept. 2011 à 12:05
Bonjour,

Je cherche à faire une requête spécial, elle semble simple pourtant impossible de la faire.

_____________
J'ai une table Client (je passe les détails des table nom prénom etc)
idclient Idrégion

_____________

une table commande
idclient montantcommande
_____________

Je cherche à afficher les 10 meilleurs commande de chaque région.

Avec une magouille d'algo je peux avoir le résultat mais je cherche à améliorer mon sql.


Autre recherche afficher la somme des 10 meilleurs commandes par région. Ce qui implique un peu d'avoir trouvé la première requête

Exemple : cette requête me permet d'avoir la somme de toutes les commandes par région.

______________________________________________________
Select sum(montantcommande) as total,*
From commande LEFT join client on commande.Idclient=client.Idclient
LEFT join client on region.Idregion=client.Idregion
Where 1
groupe by Idregion
ORDER by montantcommande DESC;
_____________________________________________________
C'est pas mal mais je cherche à avoir la somme de 10 meilleur commandes et non de toutes les commandes.

Si je rajoute Limit 10 je n'aurais que 10 régions.
Si je change sum par MAX j'ai la meilleur commande par région.

Voila le gros de mon problème, en espérant avoir été précis sur mon problème :)
A voir également:

3 réponses

Tu peux essayer ça pour avoir les 10 plus gros montants par region

SELECT * from Commande AS test1
WHERE test1.Montant IN
(SELECT TOP 10 test2.Montant FROM Commande AS test2
WHERE Test1.Region= Test2.Region ORDER BY Montant DESC) order by region

C'est le seul truc auquel j'ai pu pensé là tou de suite
0
Merci pour ta proposition je vais tester de l'adapter.
pour éviter de se disperser
En mysql top ne fonctionne pas il faut utiliser limit
Et id région n'est pas dans la table commande, il est dans la table client, qui est attaché a la table région ensuite pour récupérer le nom de la région mais c'est un détail. :)
0
Je me retrouve avec

#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

le limit dans le IN n'est pas supporté
0