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

Langage SQL Discussion :

[MySQL] Champ 'NbPoints' inconnu dans field list


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut [MySQL] Champ 'NbPoints' inconnu dans field list
    Bonjour,
    Dans une requête je récupère, pour chaque groupe de joueurs un
    nombre de points (NbPoints) et un nombre de joueurs(NbJoueurs). Jusque
    là pas de souci, maintenant je voudrais dans cette même requête
    calculer la moyenne de points par joueur pour trier selon ce critère
    mes résultats donc : j'ajoute (NbPoints /NbJoueurs) as Moyenne, mais
    là il me sort : Champ 'NbPoints' inconnu dans field list.
    Sauriez vous m'aider? Mille mercis à vous d'avance
    Julien

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 874
    Points : 53 048
    Points
    53 048
    Billets dans le blog
    6
    Par défaut
    Postez votre requête SVP.

    A +

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    Voici ma requête qui fonctionne.
    $query = "
    SELECT clubs.id_club,".$this->GetRequeteClassement($bareme).",
    COUNT(distinct membres_clubs.id_membre) as Membres
    FROM predictors, rencontres, journees, clubs, membres_clubs
    WHERE predictors.id_rencontre = rencontres.id_rencontre
    AND membres_clubs.id_club = clubs.id_club
    AND membres_clubs.id_membre = predictors.id_membre
    AND journees.id_journee = rencontres.id_journee
    GROUP BY membres_clubs.id_club
    ORDER BY NbPoints desc";

    la fonction $this->GetRequeteClassement($bareme)
    permet de calculer le nb de points (NbPoints) selon les baremes.

    Maintenant, je souhaiterais connaitre le nom de points moyen obtenu par chaque membre dans chaque club soit NbPoints/Membres.
    Je rajoute donc dans mon select (NbPoint/Membres) as Average
    et là erreur : Champ 'NbPoints' inconnu dans field list

    Pour mieux comprendre , coté client voici http://www.64matchschrono.info/wc200...classement.php
    J'affiche ce que je cherche (moyenne de point par internaute) mais comme je la calcule en php, je ne peux pas trier directement avec ma requete sql (ça implique donc une autre boucle php derriere et c'est galere)

    Suis je clair?
    Merci de votre aide si importante ^__^

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Dois-je encore espérer avec uen réponse ici ou non? Je ne connais pas les habitudes des internautes, cad si un message n'ayant pas de réponses dans la journée est considéré comme dépassé.
    Merci de votre réponse.
    Julien

  5. #5
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Non, mais en général, nous répondons en priorité aux messages qui sont clairs et répondent aux règles du forum concerné.

    Je vous invite à lire : CONSEILS... à lire AVANT de POSTER ! merci

    En effet, il y a beaucoup de demandes. Si une demande n'est pas claire ou si elle me demande du travail pour extraire la requête de votre code source, alors, quand je suis pressé, je passe mon chemin...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Bonjour, Veuillez m'excuser, je pensais avoir été clair :

    SELECT
    clubs.id_club,

    blablabla as NbPoints,

    blablabla as NbMembres
    FROM ...
    WHERE ...
    Ma requête actuelle fonctionne mais je souhaite ajouter une nouvelle valeur dans mon select (NbPoints/NbMembres as Moyenne) afin de trier la liste sur cette valeur mais là le SGBD me renvoit l'erreur suivante :

    "Champ 'NbPoints' inconnu dans field list"
    Est-ce mieux ainsi ?
    Merci de votre aide.

  7. #7
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Salut,

    Les alias de colonnes ne peuvent être réutilisés que dans les clauses GROUP BY, HAVING et ORDER BY.

    Le seul moyen (que je connaisse) pour réutiliser un résultat précédent dans un SELECT est de le stocker dans une variable. Quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT clubs.id_club,
    (@nbPoints := COUNT(...)) AS NbPoints,
    (@nbMembres := COUNT(...))  AS NbMembres,
    (@nbPoints / @nbMembres) AS Moyenne
    FROM ...
    WHERE ...
    Mais je crois que dans ton cas, ça ne marchera pas.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    En effet, j'ai testé ceci
    ( @nbMembres :=COUNT(distinct membres_clubs.id_membre) ) as Membres,
    (@nbMembres) AS Moyenne
    et Moyenne reste irréversiblement vide.
    Arg, donc obligé de faire des moulinettes php..Zut de zut
    Merci de ton aide toutefois.
    Julien

Discussions similaires

  1. [MySQL] Champ '$demande' inconnu dans where clause
    Par boxster77 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/11/2010, 16h52
  2. [MySQL] Champ 'Kaskroot' inconnu dans where clause
    Par visqueu dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/11/2010, 13h50
  3. Champ 'entreprise.nom' inconnu dans field list
    Par _medi dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/03/2008, 20h52
  4. [SQL] Champ inconnu dans field list
    Par ludo2612 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/01/2008, 21h58
  5. [MySQL] Champ inconnu dans field list
    Par student007 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/02/2006, 18h09

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