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 :

[SQL][DERBY] Que signifie cette erreur ?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 55
    Points : 43
    Points
    43
    Par défaut [SQL][DERBY] Que signifie cette erreur ?
    Bonjour, je ne sais pas si le post doit figurer ici, mais je pense qu'il s'agit d'une erreur SQL...

    Alors, voici la requete que j'effectue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select livres.isbn, livres.titre, editeurs.nom, auteurs.nom, mots_cles.mot as mot2, avg(commentaires.note) as note2
    from livres, commentaires, editeurs, livres_auteurs, livres_mots_cles, mots_cles, auteurs
    where livres.editeur=editeurs.id and livres.isbn=livres_auteurs.isbn and livres_mots_cles.isbn=livres.isbn and commentaires.isbn=livres.isbn and livres_auteurs.id_auteur=auteurs.id and livres_mots_cles.id_mots_cles=mots_cles.id
    order by titre
    Et j'ai toujours l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRAVE: Column reference 'LIVRES.ISBN' is invalid. When the SELECT list contains at least one aggregate then all entries must be valid aggregate expressions.
    J'ai aussi essayer de mettre "livres.isbn as isbn2" ... Même erreur...
    En espérant qu'une personne puisse m'aider ...
    Où est l'erreur dans ma requête? Quelqu'un pourrait me la corriger ?
    Merci d'avance des réponses
    Bonne journée, et bonnes fêtes de fin d'année.

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Ben pour une fonction d'aggregation il te faut soit un group by soit que tu fasses l'aggregation sur toutes les collumns:

    Typiquement une solution (apres ca dépend de ce que tu veux) serait de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    select livres.isbn, livres.titre, editeurs.nom, auteurs.nom, mots_cles.mot as mot2, avg(commentaires.note) as note2
    from livres, commentaires, editeurs, livres_auteurs, livres_mots_cles, mots_cles, auteurs
    where livres.editeur=editeurs.id and livres.isbn=livres_auteurs.isbn and livres_mots_cles.isbn=livres.isbn and commentaires.isbn=livres.isbn and livres_auteurs.id_auteur=auteurs.id and livres_mots_cles.id_mots_cles=mots_cles.id
     
    Group By livres.isbn, livres.titre, editeurs.nom, auteurs.nom, mots_cles.mot
     
     
    order by titre

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Essaye de mieux présenter tes requêtes, sinon pour le fond ze_key a raison :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT l.isbn, l.titre, e.nom, a.nom, m.mot as mot2, avg(c.note) as note2 
    FROM   Livres l INNER JOIN Commentaires       c ON c.isbn           = l.isbn
                    INNER JOIN Editeurs           e ON e.id             = l.Editeur
                    INNER JOIN Livres_auteurs    la ON la.isbn          = l.isbn
                    INNER JOIN Livres_mots_cles lmc ON lmc.isbn         = l.isbn
                    INNER JOIN Mots_cles          m ON lmc.id_mots_cles = m.id
                    INNER JOIN Auteurs            a ON la.id_auteur     = a.id 
    GROUP BY l.isbn, l.titre, e.nom, a.nom, m.mot
    ORDER BY l.titre

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci pour vos réponses ... Et merci à Médiat de m'avoir donner un exemple avec les INNER JOIN ... Choses que je ne me souvenais plus ...
    En effet, il s'agissait du GROUP BY.

  5. #5
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Le tag résolu stp

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

Discussions similaires

  1. RunJasperReports : que signifie cette erreur ?
    Par clavier12AZQSWX dans le forum Général Java
    Réponses: 2
    Dernier message: 05/03/2010, 23h14
  2. Que signifie cette erreur ?
    Par stilgar_karas dans le forum wxWidgets
    Réponses: 2
    Dernier message: 14/12/2009, 12h26
  3. Que signifie cette erreur
    Par BuzzLeclaire dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2009, 13h13
  4. Que signifie cette erreur de compilation ?
    Par Premium dans le forum C
    Réponses: 14
    Dernier message: 22/05/2006, 23h16
  5. [SQL-Server] 'Bad column offset' que signifie cette erreur ?
    Par dor_boucle dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 08/02/2006, 15h01

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