Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de Top dans les requetes

1 réponse
Avatar
Sandrine
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 perdu

Sandrine

1 réponse

Avatar
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