Bonjour
je rencontre une difficulté dans Access pour récupérer dans une requête ou une table, la somme des X plus grande valeur pour chacun de mes joueurs.
Pour le contexte, chaque semaine le mardi des vacances scolaire je joue au bowling avec une vingtaine de personnes.
Chaque semaine il y a un classement individuel.
j'ai réussi a attribuer une valeur de point en fonction du classement (de 10 a 1 pour les 10 premier jours et 1 point pour les autres joueurs).
ces résultats sont ajouté a une table qui regroupe tous les matchs.
j'arrive à additionner la totalité des points de chaque joueurs mais le problème s'est que nous gardons seulement 2/3 des résultat et donc les meilleurs.
En fin d'année, nous seront cette année à 6 journée et nous ne garderons que les 4 meilleures journées.
Comment ne prendre que les 6 meilleurs résultats.
Sachant que l'an prochain nous seront a 8 journées.
j'ai essayé avec Select Top 4 mais cela ne fonctionne pas.
j'arrive a lister les joueur dans l'ordre avec leur point gagnés mais je n'arrive pas a bloquer seulement au max les 4 meilleures
![]()
certain n'ont pas joué les toute les journées et ne seront pas classés et peuvent ne pas être affichés mais si il le sont ce n'est pas plus mal.
il faut conserver les doublon dans le 4 meilleures journée
j'ai essayé avec chat-gpt mais j'ai toujours un problème avec la 5 et surement les 6 7 et 8 quand elle seront présentent et si elle sont identiques
mais si la 4-5-6-7-8 sont identiques, il faut garde que la 4eme dans ce cas précis ( dans une règle générale, le 2/3 des journées jouées
j'ai aussi demandé la somme des point de chaque journée conservées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT R.nomjoueur, SUM(R.points) AS total_points, SUM(R.nblignes) AS SommeDenblignes FROM resultats_vacances AS R WHERE R.NUM IN ( SELECT R2.NUM FROM resultats_vacances AS R2 WHERE R2.nomjoueur = R.nomjoueur AND R2.points IN ( SELECT TOP 4 R4.points FROM resultats_vacances AS R4 WHERE R4.nomjoueur = R2.nomjoueur ORDER BY R4.points DESC ) ) GROUP BY R.nomjoueur ORDER BY SUM(R.points) DESC;
Partager