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

Extraction de données

1 réponse
Avatar
Michel B
Bonjour a toutes et a tous,

je séche depuis ce matin sur une requète qui doit être simple, mais quand ça
va pas, ça va pas.

Voila, j'ai une table avec des résultats de compétitions, plusieurs
compétitions et bien sur plusieurs sportifs.
Je dois à partir des 4 compétitions les plus récentes, extraire les
meilleurs résultats de chaque sportif ( Nb de Points), dans la limite de 3
résultats.
Bien sur extraire les 2 résultats si celui-ci n'as fait que 2
participations, idem si 1 seul.

J'ai bien isolé les 4 compétitions les plus récentes, mais pour les
résultats, les points les plus élevés ??????? je commence a avoir des
crampes.

Toute aide sera la bien venue, d'avance merci.
Cordialement
Michel

Exemple :
01/02/2008 Dupont 80
01/10/2008 Dupont 80
01/08/2008 Dupont 70
01/06/2008 Dupont 60
01/06/2008 Duraille 100
01/10/2008 Duraille 100
01/08/2008 Duraille 90
01/02/2008 Duraille 70
01/02/2008 Durand 90
01/06/2008 Durand 80
01/08/2008 Durand 80
01/10/2008 Durand 60
01/02/2008 Duval 100
01/08/2008 Duval 90
01/06/2008 Duval 70
01/10/2008 Duval 50
01/06/2008 Marvel 90
01/02/2008 Marvel 60


Résultats souhaités

01/02/2008 Dupont 80
01/10/2008 Dupont 80
01/08/2008 Dupont 70
01/06/2008 Duraille 100
01/10/2008 Duraille 100
01/08/2008 Duraille 90
01/02/2008 Durand 90
01/06/2008 Durand 80
01/08/2008 Durand 80
01/02/2008 Duval 100
01/08/2008 Duval 90
01/06/2008 Duval 70
01/06/2008 Marvel 90
01/02/2008 Marvel 60

1 réponse

Avatar
Michel__D
Bonjour,

"Michel B" a écrit dans le message de news: 49a010ee$0$3682$
Bonjour a toutes et a tous,

je séche depuis ce matin sur une requète qui doit être simple, mais quand ça va pas, ça va pas.

Voila, j'ai une table avec des résultats de compétitions, plusieurs compétitions et bien sur plusieurs sportifs.
Je dois à partir des 4 compétitions les plus récentes, extraire les meilleurs résultats de chaque sportif ( Nb de Points), dans la
limite de 3 résultats.
Bien sur extraire les 2 résultats si celui-ci n'as fait que 2 participations, idem si 1 seul.

J'ai bien isolé les 4 compétitions les plus récentes, mais pour les résultats, les points les plus élevés ??????? je commence a
avoir des crampes.

Toute aide sera la bien venue, d'avance merci.
Cordialement
Michel

Exemple :
01/02/2008 Dupont 80
01/10/2008 Dupont 80
01/08/2008 Dupont 70
01/06/2008 Dupont 60
01/06/2008 Duraille 100
01/10/2008 Duraille 100
01/08/2008 Duraille 90
01/02/2008 Duraille 70
01/02/2008 Durand 90
01/06/2008 Durand 80
01/08/2008 Durand 80
01/10/2008 Durand 60
01/02/2008 Duval 100
01/08/2008 Duval 90
01/06/2008 Duval 70
01/10/2008 Duval 50
01/06/2008 Marvel 90
01/02/2008 Marvel 60


Résultats souhaités

01/02/2008 Dupont 80
01/10/2008 Dupont 80
01/08/2008 Dupont 70
01/06/2008 Duraille 100
01/10/2008 Duraille 100
01/08/2008 Duraille 90
01/02/2008 Durand 90
01/06/2008 Durand 80
01/08/2008 Durand 80
01/02/2008 Duval 100
01/08/2008 Duval 90
01/06/2008 Duval 70
01/06/2008 Marvel 90
01/02/2008 Marvel 60



La requête qui ne garde que les 4 derniers résultat de chaque sportif nommée [LaRequete]

SELECT T1.Nom, T1.DateEnr, T1.Resultat
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.DateEnr<=T2.DateEnr) AND (T1.Nom=T2.Nom)
GROUP BY T1.Nom, T1.DateEnr, T1.Resultat
HAVING Count(T2.DateEnr)<=4
ORDER BY T1.Nom, T1.DateEnr DESC;

Et sur le même principe la requête qui fournit les 3 meilleurs résultats par rapport
à la requête précédente :

SELECT T1.Nom, T1.DateEnr, T1.Resultat
FROM LaRequete AS T1 INNER JOIN LaRequete AS T2
ON (T1.Resultat<=T2.Resultat) AND (T1.Nom=T2.Nom)
GROUP BY T1.Nom, T1.DateEnr, T1.Resultat
HAVING Count(T2.Resultat)<=3
ORDER BY T1.Nom, T1.DateEnr DESC;