IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Problème avec plusieurs requêtes sql


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Problème avec plusieurs requêtes sql
    Bonjour à tous !

    J'ai un problème avec plusieurs requêtes que je dois faire mais qui me paraissent tellement énorme que je ne sais pas par où commencer. Pour une meilleure compréhension, je vais illustrer mon propos.

    J'ai une table nommé score. Cette table contient des scores, comme son nom l'indique. Dans cette table est enregistré des scores (non, sans blagues... :p ).

    Voici la structure de la table :

    id/pseudo/console/jeu/score

    - id est un champ en auto increment qui sert a differencier les performances, pseudo contient le pseudo de la personne qui a réalisé le score, console contient le nom de la console sur laquelle le score a été réalisé, jeu contient le jeu sur lequel le score a été réalisé et score contient... le score.

    Dans cette table, il y a des centaines d'enregistrements. Il faut donc faire une requête pour trier les informations afin d'afficher ce que l'on veux.

    Problèmes

    - Comment faire pour afficher le nombre de fois ou le membre est premier sur un jeu ? ou deuxième ? ou troisième ?

    - Comment faire pour calculer le nombre total de point d'un membre ?
    Avec un barème de ce type : 1ère place = 10 points, 2ème place = 9 points, 3ème place = 8 points...

    - Comment faire pour afficher le classement général de tous les joueurs ?

    Je vous remercie d'avance de l'aide que vous allez m'apporter ou bien tout simplement d'avoir pris la peine de lire ce topic dans son entierté.

    Si vous avez une questions car vous n'avez pas bien compris le problème ou si vous souhaitez plus d'explications, n'hésitez surtout pas.

    Cordialement, Raul10.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Allô !
    Alors allons-y dans l'ordre
    Et pour illustrer mes requêtes, je prendrai les données suivantes:
    pseudo: Roger
    jeu: ABC
    - Comment faire pour afficher le nombre de fois ou le membre est premier sur un jeu ? ou deuxième ? ou troisième ?
    Tu dois réaliser une requête qui comptera le nombre d'enregistrements où le pseudo est égal à 'Roger', où le jeu est égal à 'ABC' et où le classement correspond à celui que tu désires obtenir (par exemple 1,2...)
    Cela devrait donner une requête comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COUNT(pseudo) FROM score WHERE jeu = 'ABC' 
    AND pseudo = 'Roger' AND score = '1'
    Comment faire pour calculer le nombre total de point d'un membre ?
    Avec un barème de ce type : 1ère place = 10 points, 2ème place = 9 points, 3ème place = 8 points...
    Pour ceci je te propose une méthode, je ne crois pas qu'elle est la plus optimale, donc si quelqu'un peut en proposer une meilleure qu'il n'hésite pas , mais je t'expose la mienne quand même.
    Tu utilises la requête précédente pour compter le nombre de fois où un joueur a terminé premier. Tu prends le résultat obtenu et tu le multiplies par le nombre de points pour cette position. Par exemple, si Roger a terminé en première position 8 fois pour le jeu ABC, et bien la requête te retournera 8, et tu multiplieras cette valeur par 10, pour obtenir 80. Tu répètes cette requête pour chaque position (deuxième, troisième...). Tu dois bien évidemment additionner tous les résultats à la fin pour obtenir le nombre de points total du joueur.

    Comment faire pour afficher le classement général de tous les joueurs ?
    Ici, une simple requête calculant la moyenne suffira je crois. Il te suffira de faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT AVG(score) FROM score
    Si tu veux le classement général pour un joueur en particulier, tu n'as qu'à ajouter une clause WHERE qui spécifie pour quel joueur.

    J'espère avoir bien compris ce que tu désirais réaliser. Si je n'ai pas été claire dans mes explications, n'hésite pas à me poser plus de questions !
    Bonne chance !

Discussions similaires

  1. Petit problème avec une requête SQL en VB6
    Par muzele dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/11/2007, 20h51
  2. Problème avec une requête sql
    Par mika0102 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/10/2007, 15h50
  3. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  4. [MySQL] Problème avec une requête SQL
    Par chobol dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/05/2006, 12h29
  5. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo