J'ai une base avec, entre autres, une table [Agences] ou est enregistre le
chiffre d'affaires de chaque agence cliente:
Les champs sont [ID], [Month], [Revenue]
Je souhaite, pour chaque mois, avoir uniquement les 10 meilleures agences.
J'ai pu sortir le Top10 mais je n'ai que le Top pour l'ensemble des mois et
non mois par mois.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel_D
Bonjour,
Essaye ceci en 2 requêtes :
1) Tu classe tes agences (ID) avec cette requête "RangAgences" :
SELECT T1.Month AS NMois, T1.ID, T1.Revenue, Count(T2.Month) AS Rang FROM Agences AS T1 INNER JOIN Agences AS T2 ON (T1.Month=T2.Month) AND (T1.Revenue<=T2.Revenue) GROUP BY T1.Month, T1.ID, T1.Revenue ORDER BY T1.Month, T1.Revenue DESC;
2) Tu garde les 10 de chaque mois :
SELECT NMois, ID, Revenue, Rang FROM RangAgences WHERE (Rang<) ORDER BY NMois, Rang;
"Frederic Revol" <Frederic a écrit dans le message de news:
Bonjour,
J'ai une base avec, entre autres, une table [Agences] ou est enregistre le chiffre d'affaires de chaque agence cliente: Les champs sont [ID], [Month], [Revenue] Je souhaite, pour chaque mois, avoir uniquement les 10 meilleures agences.
J'ai pu sortir le Top10 mais je n'ai que le Top pour l'ensemble des mois et non mois par mois.
Qui pourrais eclairer ma lanterne ?
merci
Frederic
Bonjour,
Essaye ceci en 2 requêtes :
1) Tu classe tes agences (ID) avec cette requête "RangAgences" :
SELECT T1.Month AS NMois, T1.ID, T1.Revenue, Count(T2.Month) AS Rang
FROM Agences AS T1 INNER JOIN Agences AS T2
ON (T1.Month=T2.Month) AND (T1.Revenue<=T2.Revenue)
GROUP BY T1.Month, T1.ID, T1.Revenue
ORDER BY T1.Month, T1.Revenue DESC;
2) Tu garde les 10 de chaque mois :
SELECT NMois, ID, Revenue, Rang
FROM RangAgences
WHERE (Rang<)
ORDER BY NMois, Rang;
"Frederic Revol" <Frederic Revol@discussions.microsoft.com> a écrit dans le message de
news:47DF98F4-E5B5-443A-B62B-809225638972@microsoft.com...
Bonjour,
J'ai une base avec, entre autres, une table [Agences] ou est enregistre le
chiffre d'affaires de chaque agence cliente:
Les champs sont [ID], [Month], [Revenue]
Je souhaite, pour chaque mois, avoir uniquement les 10 meilleures agences.
J'ai pu sortir le Top10 mais je n'ai que le Top pour l'ensemble des mois et
non mois par mois.
1) Tu classe tes agences (ID) avec cette requête "RangAgences" :
SELECT T1.Month AS NMois, T1.ID, T1.Revenue, Count(T2.Month) AS Rang FROM Agences AS T1 INNER JOIN Agences AS T2 ON (T1.Month=T2.Month) AND (T1.Revenue<=T2.Revenue) GROUP BY T1.Month, T1.ID, T1.Revenue ORDER BY T1.Month, T1.Revenue DESC;
2) Tu garde les 10 de chaque mois :
SELECT NMois, ID, Revenue, Rang FROM RangAgences WHERE (Rang<) ORDER BY NMois, Rang;
"Frederic Revol" <Frederic a écrit dans le message de news:
Bonjour,
J'ai une base avec, entre autres, une table [Agences] ou est enregistre le chiffre d'affaires de chaque agence cliente: Les champs sont [ID], [Month], [Revenue] Je souhaite, pour chaque mois, avoir uniquement les 10 meilleures agences.
J'ai pu sortir le Top10 mais je n'ai que le Top pour l'ensemble des mois et non mois par mois.