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 MySQL Discussion :

Afficher Nombre de défaites et nombre de Victoires


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut Afficher Nombre de défaites et nombre de Victoires
    Bonjour,

    Voici mes 2 tables :

    Joueur :
    id_joueur | pseudo | mdp

    Score :
    id_score | id_joueur1 | id_joueur2 | gagnant


    C'est un jeu de morpion. Pour un joueur je voudrais savoir le nombre de victoires et le nombre de défaites. J'ai testé ça mais ça ne marche pas (normal).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT j.pseudo, COUNT(s1.gagnant) AS nbVictoires, COUNT(s2.gagnant) AS nbDefaites
    FROM joueur AS j
    LEFT JOIN score AS s1 ON j.id_joueur=s1.gagnant
    AND (s1.id_joueur=j.id_joueur OR s1.id_joueur2=j.id_joueur)
    LEFT JOIN score AS s2 ON j.id_joueur<>s2.gagnant
    AND (s2.id_joueur=j.id_joueur OR s2.id_joueur2=j.id_joueur) 
    WHERE j.pseudo = 'MARTIN'

    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 290
    Par défaut
    Qu'est-ce que ça donne comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT j.pseudo, 
      SUM(CASE WHEN j.id_joueur = s.gagnant THEN 1 ELSE 0 END) as NbVictoires,
      SUM(CASE WHEN j.id_joueur = s.gagnant THEN 0 ELSE 1 END) as NbDefaites
    FROM joueur AS j
    LEFT JOIN score AS s ON j.id_joueur IN (s.id_joueur1, s.id_joueur2)
    WHERE j.pseudo = 'MARTIN'
    Variante spécifique à MySQL, qui traduit les conditions en 0 ou 1 sans avoir besoin de CASE WHEN.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT j.pseudo, 
      SUM(j.id_joueur = s.gagnant) as NbVictoires,
      SUM(j.id_joueur <> s.gagnant) as NbDefaites
    ...

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    Merci beaucoup.

    Ça marche à merveille.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL SERVER 2K] Afficher le signe d'un nombre positif ?
    Par andlio dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/08/2007, 14h09
  2. Réponses: 52
    Dernier message: 13/03/2007, 15h07
  3. afficher dans un etat le nombre de personnes pour chaque ville
    Par puppusse79 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/12/2006, 15h55
  4. [VBA-E] Afficher les 0 devant un nombre
    Par skual dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2006, 10h58
  5. Afficher le plus petit des nombres
    Par wkm1807 dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2005, 23h46

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