J' espere que je ne vais pas poluer la base avec ma question... j ai vu qu on en avait deja parle en janvier, mais je ne m en sors pas :
Ma question par un exemple
Il est facile avec "Top" d'avoir les 10 meilleures ventes, je suis ok, par contre comment fait-on pour avoir les 10 meilleures ventes de chaque pays
(est-il possible de le faire dans la requete, ou faut-il obligatoirement passer par du VBA, ajout d enregistrement etc ..
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 Walsh
Salut,
SELECT * FROM maTable As a WHERE a.pk IN( SELECT TOP 10 b.pk FROM maTable As b WHERE b.ville = a.ville ORDER BY a.montant DESC)
ORDER BY a.ville, a.montant DESC
où le dernier ORDER BY est facultatif. Alternativement, plutôt que d'utiliser une sous requête, on peut utiliser une requête de type total:
SELECT a.ville, a.montant FROM maTable As a INNER JOIN maTable As b ON a.ville=b.ville AND a.montant <= b.montant GROUP BY a.ville, a.montant HAVING COUNT(*) <= 10
ORDER BY a.ville, a.montant
Les deux requêtes retorunent des résultats différents si il y a plusieurs enregistrements en 'position 10' (ex-equo), pour une ville donnée.
Espérant être utile, Vanderghast, Access MVP
"Sandrine" wrote in message news:
Salut,
J' espere que je ne vais pas poluer la base avec ma question... j ai vu qu on en avait deja parle en janvier, mais je ne m en sors pas :(
Ma question par un exemple : Il est facile avec "Top" d'avoir les 10 meilleures ventes, je suis ok, par contre comment fait-on pour avoir les 10 meilleures ventes de chaque pays ?
(est-il possible de le faire dans la requete, ou faut-il obligatoirement passer par du VBA, ajout d enregistrement etc ...
Merci beaucoup, je suis perdue
Sandrine
Salut,
SELECT *
FROM maTable As a
WHERE a.pk IN( SELECT TOP 10 b.pk
FROM maTable As b
WHERE b.ville = a.ville
ORDER BY a.montant DESC)
ORDER BY a.ville, a.montant DESC
où le dernier ORDER BY est facultatif. Alternativement, plutôt que
d'utiliser une sous requête, on peut utiliser une requête de type total:
SELECT a.ville, a.montant
FROM maTable As a INNER JOIN maTable As b
ON a.ville=b.ville AND a.montant <= b.montant
GROUP BY a.ville, a.montant
HAVING COUNT(*) <= 10
ORDER BY a.ville, a.montant
Les deux requêtes retorunent des résultats différents si il y a plusieurs
enregistrements en 'position 10' (ex-equo), pour une ville donnée.
Espérant être utile,
Vanderghast, Access MVP
"Sandrine" <anonymous@discussions.microsoft.com> wrote in message
news:CF29C0FA-A10F-4608-B7F2-4218D2B7C039@microsoft.com...
Salut,
J' espere que je ne vais pas poluer la base avec ma question... j ai vu qu
on en avait deja parle en janvier, mais je ne m en sors pas :(
Ma question par un exemple :
Il est facile avec "Top" d'avoir les 10 meilleures ventes, je suis ok, par
contre comment fait-on pour avoir les 10 meilleures ventes de chaque pays ?
(est-il possible de le faire dans la requete, ou faut-il obligatoirement
passer par du VBA, ajout d enregistrement etc ...
SELECT * FROM maTable As a WHERE a.pk IN( SELECT TOP 10 b.pk FROM maTable As b WHERE b.ville = a.ville ORDER BY a.montant DESC)
ORDER BY a.ville, a.montant DESC
où le dernier ORDER BY est facultatif. Alternativement, plutôt que d'utiliser une sous requête, on peut utiliser une requête de type total:
SELECT a.ville, a.montant FROM maTable As a INNER JOIN maTable As b ON a.ville=b.ville AND a.montant <= b.montant GROUP BY a.ville, a.montant HAVING COUNT(*) <= 10
ORDER BY a.ville, a.montant
Les deux requêtes retorunent des résultats différents si il y a plusieurs enregistrements en 'position 10' (ex-equo), pour une ville donnée.
Espérant être utile, Vanderghast, Access MVP
"Sandrine" wrote in message news:
Salut,
J' espere que je ne vais pas poluer la base avec ma question... j ai vu qu on en avait deja parle en janvier, mais je ne m en sors pas :(
Ma question par un exemple : Il est facile avec "Top" d'avoir les 10 meilleures ventes, je suis ok, par contre comment fait-on pour avoir les 10 meilleures ventes de chaque pays ?
(est-il possible de le faire dans la requete, ou faut-il obligatoirement passer par du VBA, ajout d enregistrement etc ...