Obtenir la liste des meilleurs joueurs

Résolu
Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
-
Bonjour à tous

J'ai deux tableaux
1 avec liste des joueur tbljoueur
avec comme champs codejoueur (clé)
name
surname
2 un tableau des résultats tblresults
coderesult (clé)
codejoueur
pts

j'ai écrit la requete suivant
 command.CommandText "SELECT Name , Surname, MAX(pts) FROM tbljoueur ,tblresults WHERE tbljoueur.codejoueur tblresults.codejoueur GROUP BY Name,Surname ;"


cela donne comme résultat
pour chaque joueur son meilleur résultat

je voudrai obtenir
le name surname pts du joueur qui a le meilleur résultat et si il y a plusieurs ex aequo aussi

Merci

merci

15 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
Bonjour
je ne veux pas publié la liste de chacun
J'ai réussi
command.CommandText "SELECT Name , Surname, MAX(pts) FROM tbljoueur ,tblresults WHERE tbljoueur.codejoueur tblresults.codejoueur AND pts "
command.CommandText &= " IN ( SELECT MAX(pts) FROM tbljoueur ) GROUP BY Name,Surname  ORDER BY Name , Surname ;"


en Créole traduit par Google
En février il neige
Nan mwa fevriye li snows
comme la neige est seulement sur youtube
la traduction n'existe pas
Messages postés
14847
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 janvier 2022
160
Bonjour,

Peut être avec la clause Order By

ça donne quoi ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Salut Shay,

Arrête de jouer!...

C'est pas plutôt ORDER BY?
Je te dis ça mais je suis trop SQListe...

Mais regarde CE LIEN


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Salut NHenry,

C'est pas juste, tu m'as devancé de une minute


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
Salut Henry
comme ça

command.CommandText "SELECT Name , Surname, MAX(ptsplayer) FROM Player ,Results WHERE Player.Playercode Results.playercode GROUP BY Name,Surname ORDER BY  Name,Surname ;"


donne le meme résultat trier

comme ça

 command.CommandText "SELECT Name , Surname, MAX(ptsplayer) FROM Player ,Results WHERE Player.Playercode Results.playercode ORDER BY Name,Surname  ;"


une erreur obligé d'utiliser le group by à cause de la fonction MAX
Messages postés
14847
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 janvier 2022
160
Bonjour,

Tu peux aussi y adjoindre la clause Top.
Essayes de mettre un alias sur le champ Max et de faire un tri dessus.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
J'ai l'impression que ma question n'a pas été
comprise

ex tableau Tbjoueur
codejoueur name surname
1 toto loto
2 tuti fruiti
3 tata toto


tableau Tbresult
coderesult codejoueur pts
1 1 10
2 3 10
3 3 20
4 2 12

le resultat donne

tata toto 20
tuti fruiti 12
toto loto 10


je voudrai obtenir
tata toto 20

et si le Tblresult est
coderesult codejoueur pts
1 1 10
2 3 10
3 3 20
4 2 12
5 2 20


obtenir
tata toto 20
tuti fruiti 20

voila j'espère que c'est plus clair

NHenry,
Top sert à limiter (en thermes de pourcentage) le nombre d'enregistrements retournés, non?


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
14847
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 janvier 2022
160
Bonjour,

Si tu le prends en ces thermes, il faudra aller se laver :D

Top limite le nombre d'enregistrements retournés (En nombre fixe, pas pourcentage).
Et ma suggestion du OrderBy avec la colonne calculée est légitime.

Sinon, intéresses-toi aux Vues.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Re:

N'importe quoi ce que j'écris... en plus ça fait quelques jours que je fais cette faute, j'ai du la prendre comme exemple avec certains (c'est contagieux, fait gaffe)
Et les "thermes" sont gelées chez vous en ce moment...

Et ou j'ai mal lu, pour la syntaxe:
The TOP clause is used to specify the number of records to return.
The TOP clause can be very useful on large tables with thousands of records. Returning a large number of records can impact on performance.
Note: Not all database systems support the TOP clause


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour acive,

Il va falloir que tu mettes un terme à cela !
En plus, Février = Pluviôse et non Thermidor

Cordialement,

Cheyenne
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Bonsoir,

Dans ta requete
1il faudra mettre en relation
tblresults --> tbljoueur codejoueur.
dans le sens indiqué.

2 Faire le regroupement respectivement sur:
tblresults.pts
tblresults.codejoueur
et
tbljoueur.name
tbljoueur.surname

voici donc l' expression:

SELECT Max(tblresults.pts) AS MaxDepts, tblresults.codejoueur, tbljoueur.name, tbljoueur.surname
FROM tbljoueur INNER JOIN tblresults ON tbljoueur.codejoueur = tblresults.codejoueur
GROUP BY tblresults.codejoueur, tbljoueur.name, tbljoueur.surname
ORDER BY Max(tblresults.pts) DESC , tblresults.codejoueur;

Et ça donne :

20 2 tuti fruiti
20 3 tata toto
10 1 toto loto




[] Ce qui va sans dire. va mieux en le disant.

Salut,

Enfin quelqu'un SQListe,
j'avais testé un peu (sur access) ce tu as proposé (approximativement) Libre_max, mais j'avais des résultats plutôt dans l'ordre apha au lieu de numérique, ça fait un résultat du genre (dans l'ordre décroissante):

30 2 tuti fruiti
3 3 tata toto
200 1 toto loto
20 8 fruiti tata
2 5 loto fruiti

C'est pourquoi je ne l'ai pas proposé et puis j'ai du sortir... mais je ne me suis surement pas trop appliqué, et je ne suis pas trop doué pour SQL.

Cheyenne:
Février = Pluviôse
tu rigoles? tu crois que j'ai pas les infos ici? j'ai vu un canard avec les pattes prises en attendant la fonte de la glace.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Salut,
Ah, il y avait bien un ORDER BY, mais j'étais loin du compte...

Nan mwa fevriye li snows

Je suis parisien, j'y connais que dalle au créole mais je sais que c'est du créole d'une colonie anglaise
Sinon,
Si février n'a ni pluies, ni giboulées,
Tous les mois de l'année seront ennuyés.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour acive,

Tu rigoles ?

Non pas du tout : Aujourd'hui Mercredi 8 Février = Décadi 20 Pluviôse.
Ou alors je n'ai pas compris ton trait d'humour.

Allez, je sors, je suis loin du sujet initial...

Cordialement,

Cheyenne