Bonjour,
je suis nouveau sur le forum mais ce forum est ma "bible" quand j'ai un problème SQL. D'habitude, je recherche si mon problème a déjà été traité et souvent je trouve et je ne pose pas de question. Cette fois, je n'ai pas trouvé de réponse dans les sujets déjà ouvert...
Sous SQLServer 2005, j'ai une table des ventes structurée comme suit (je simplifie)
Magasin
article
Montant
date de vente
Cette table stocke les ventes de tous les magasins pour tous les articles.
Si je cherche les 10 articles les plus vendus pour un magasin donné (par exemple le magasin de Bordeaux), je fais la requete :
Ca fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select top(10) with ties article, count(*) as nombre, sum(montant) from table_des_ventes where magasin='BORDEAUX' group by article order by nombre desc;
Maintenant je voudrais généraliser cette requête pour tous les magasins, c'est à dire avoir pour chaque magasin la liste des 10 articles les plus vendus (mais en ne faisant qu'une seule requête). Bien sûr, si c'est utile, je précise qu'il existe une table des magasins qui donne la liste exhaustive des magasins.
j'ai essayé :
mais ça ne passe pas au niveau de la syntaxe. J'ai essayé également avec des sous-requête mais sans succès non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select magasin, top(10) with ties article, count(*) as nombre, sum(montant) from table_des_ventes group by magasin, article order by nombre desc;
Quelqu'un a une idée du comment faire ?
Merci.
Partager