Obtenir la liste des meilleurs joueurs

Résolu
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 7 févr. 2012 à 18:19
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 8 févr. 2012 à 13:04
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

cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
8 févr. 2012 à 10:02
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
3
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
7 févr. 2012 à 20:49
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
0
Utilisateur anonyme
7 févr. 2012 à 20:50
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
0
Utilisateur anonyme
7 févr. 2012 à 20:51
Salut NHenry,

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


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
7 févr. 2012 à 21:13
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
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
7 févr. 2012 à 21:34
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
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
7 févr. 2012 à 21:37
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
0
Utilisateur anonyme
7 févr. 2012 à 21:42
NHenry,
Top sert à limiter (en thermes de pourcentage) le nombre d'enregistrements retournés, non?


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
7 févr. 2012 à 21:51
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
0
Utilisateur anonyme
7 févr. 2012 à 22:01
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
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
8 févr. 2012 à 00:02
Bonjour acive,

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

Cordialement,

Cheyenne
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
8 févr. 2012 à 00:20
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.
0
Utilisateur anonyme
8 févr. 2012 à 01:16
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
0
Utilisateur anonyme
8 févr. 2012 à 12:25
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
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
8 févr. 2012 à 13:04
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
0
Rejoignez-nous