Partage
  • Partager sur Facebook
  • Partager sur Twitter

#1064 - Erreur de syntaxe

    4 avril 2020 à 19:26:15

    Bonjour, j'ai un problème dans une de mes requêtes et je ne vois pas d'erreur dans l’écriture.

    Ma requête 

    select lieu.Nom, divinite.Nom, count(divinite.Nom) as rang
    from vente
    Inner join lieu on vente.ID_Lieu = lieu.ID
    Inner join divinite on vente.ID_Divinite = divinite.ID  
    Group by lieu.Nom  
    Where rang < 6

    Et cela me renvoie cette erreur :

    #1064 - Erreur de syntaxe près de 'Where 'rang' < 6 LIMIT 0, 25' à la ligne 6

    Je suis sur PhpMyAdmin et j'utilise MySQL 8.0.18

    Merci d'avance

    -
    Edité par Nico2654 4 avril 2020 à 19:26:57

    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2020 à 21:56:30

      Bonjour,

      D'instinct, j'inverserais les deux dernières lignes : le GROUP BY, à la fin et je mettrais des apostrophes avant et après le 6 : '6'

      • Partager sur Facebook
      • Partager sur Twitter
        5 avril 2020 à 9:58:58

        Bonjour,

        Non, rang est un alias, tu ne peux pas l'utiliser dans une clause WHERE.

        De plus c'est un alias d'une colonne agrégée (COUNT) donc il faut utiliser la clause HAVING pour la filtrer ... La clause HAVING se place après la clause GROUP BY.

        Par ailleurs, un COUNT(*) suffit, pas besoin de t'embrouiller avec un nom de colonne dedans.

        Enfin, la clause GROUP BY doit reprendre les mêmes colonnes que la clause SELECT qui ne sont pas agrégées.

        Si ton objectif est de compter le nombre de ventes par couple Lieu/Divinité, alors la requête serait :

        SELECT
        	L.Nom,
        	D.Nom,
        	COUNT(*) as rang
        FROM
        	vente V
        		INNER JOIN lieu L
        			ON V.ID_Lieu = L.ID
        		INNER JOIN divinite D
        			ON V.ID_Divinite = D.ID 
        GROUP BY L.Nom, D.Nom
        HAVING COUNT(*) < 6
        ORDER BY rang DESC

        Et pas d'apostrophe autour du 6... COUNT donne un entier, pas une chaîne de caractères...

        -
        Edité par Benzouye 5 avril 2020 à 10:07:17

        • Partager sur Facebook
        • Partager sur Twitter
        Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

        #1064 - Erreur de syntaxe

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown