[ORACLE] comment faire rentrer des classement

Résolu/Fermé
kismetgram Messages postés 9 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 6 septembre 2008 - 18 janv. 2008 à 14:05
kismetgram Messages postés 9 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 6 septembre 2008 - 18 janv. 2008 à 14:32
Bonjour, j aimerais creer une base de données sous Oracle et j'ai un problème que j expose ici.

un joueur a pour champ : id, nom, prenom, nationalite, main_utilisee, annee_de_naissance

un tournoi a pour champ : id , nom , localisation, annee, nombre_de_joueurs

J'aimerais savoir comment dans la creation des tables faire apparaitre un classement de joueurs pour chaque tournoi, sachant que le nombre de joueur, vu que les nombre de joueurs varient, ainsi que les points atribuées associés varient aussi. alors que le nombre de champ ne varie pas.

Merci d'avance

3 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
18 janv. 2008 à 14:17
Bonjour,

Je pense que le plus simple est d'avoir trois tables qui sont les suivantes:

Table Joueur (Id , Nom, Prenom, Nationalite, Main_Utilisee , Annee_de_Naissance)

Table Tournoi (Id, Nom, Localisation, Annee)

Table Participants (Tournoi_Id , Joueur_Id , Points_Attribues)

De cette façon, si tu veux savoir le nombre de participants par tournoi, il suffit de faire

SELECT COUNT(*) FROM Participants WHERE Tournoi_Id = xxx

et si tu veux avoir un classement de joueur par tournoi, il suffit de faire

SELECT Joueur.Nom, Joueur.Prenom , Participants.Points_Attribues , Tournoi.Nom
FROM Participants , Joueur , Tournoi
WHERE Participants.Tournoi.Id = xxx
AND Joueur.Id = Participants.Joueur_Id
AND Tournoi.Id = Participants.Tournoi_Id
ORDER BY Participants.Points_Attribues ASC (ou DESC si tu veux d'abord le nombre le plus élévé)

A plus
0
ppmax Messages postés 312 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 17 juillet 2008 244
18 janv. 2008 à 14:19
Il faut une table intermédiaire qui relie Tournoi à Joueur du genre
Participe(id_joueur,id_tournoi_,classement)
0
kismetgram Messages postés 9 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 6 septembre 2008
18 janv. 2008 à 14:32
merci beaucoup, je savais qu'il fallait creer une table intermediare, jai juste pas penser au champ classement ou points attribués, merci encore
0