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 :

Moyenne avec AVG ?


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Par défaut Moyenne avec AVG ?
    Bonjour à tous,

    voilà le problème sur lequel je bute : je voudrais calculer une moyenne de données réparties sur 2 champs. Je m'explique...

    Lors de l'envoi d'un formulaire de match opposant Joueur1 à Joueur2, ma table table_matchs reçoit les infos suivantes : J1 (id du joueur1), J2, Score1 (Score du J1), Score2, Resultat1, Resultat2, Datematch

    Un "résultat" n'est pas obligatoirement généré à chaque match. Le classement est la moyenne des 6 derniers "résultats" enregistrés pour un joueur, sachant qu'il peut pour chaque match être indifféremment enregistré en tant que J1 ou J2.
    Mon souci est donc le suivant : calculer la moyenne de ces 6 derniers résultats.

    Un exemple :


    Voilà où j'en suis :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $MoyenneJ1 = $co_bdd->query('
        SELECT AVG (Resultat1+Resultat2)
        FROM table_matchs
        WHERE Joueur1=$IDJ1 AND Resultat1 IS not null
        OR Joueur2=$IDJ1 AND Resultat2 IS not null
        ORDER BY Datematch DESC
        LIMIT 1,6
    ');

    J'ai bien l'impression qu'il me faut un AVG (Resultat1+Resultat2) mais je ne pense pas que ce soit possible. En tout cas, ça ne me donne rien...

    Alors, si quelqu'un avait la solution à mon problème, je serais HEUREUX !

    bp

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu n'as pas de NULL et il te faut des parenthèses pour isoler tes conditions.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT AVG (Resultat1+Resultat2)
        FROM table_matchs
        WHERE (Joueur1=$IDJ1 AND Resultat1 != 0) OR (Joueur2=$IDJ1 AND Resultat2 != 0)
        ORDER BY Datematch DESC
        LIMIT 6

    Mais bon je trouve que ça ne sert à rien d'avoir 2 colonnes Résultat puisque tu n'en utilises qu'une des deux à la fois.
    Le gagnant est donné par le test score1 >= score2.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Moyennes avec fonction avg
    Par bati_taf dans le forum QlikView
    Réponses: 5
    Dernier message: 27/10/2013, 10h42
  2. Moyenne avec condition
    Par eillon dans le forum Excel
    Réponses: 4
    Dernier message: 31/07/2007, 08h36
  3. Moyenne avec filtre
    Par seucri dans le forum Access
    Réponses: 3
    Dernier message: 25/10/2006, 12h15
  4. Calculer une moyenne avec une matrice
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 05/06/2006, 17h47
  5. calculer une moyenne avec une requete externe
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 17h02

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