Posez votre question Signaler

MYSQL afficher 10 informations par catégorie

Elisisql - Dernière réponse le 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 :)
Lire la suite 

MYSQL afficher 10 informations par catégorie »

3 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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. :)
Ajouter un commentaire
Réponse
+0
moins plus
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é
Ajouter un commentaire
Ce document intitulé « MYSQL afficher 10 informations par catégorie » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?