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

PostgreSQL Discussion :

[SQL] problème avec une requête


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut [SQL] problème avec une requête
    bonjour,
    je seche sur une requette:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select * from "ARTICLE","HOTEL","PRIX","REGION","FOURNISSEUR" 
    		   where 'ARTICLE.id_hotel'='HOTEL.id_hotel' 
    			and 'PRIX.REFERENCE'='ARTICLE.REFERENCE'
    		        and 'HOTEL.id_region'='REGION.id_region'
    			and 'ARTICLE.id_fournisseur'='FOURNISSEUR.id_fournisseur'  
    				       group by ARTICLE.REFERENCE 
                                            order by ARTICLE.REFERENCE 
                                             limit 1 offset 10;
    et voici le msg d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR: missing FROM-clause entry for table "article"
    qu'est ce que cela veut dire?

  2. #2
    Membre habitué Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Points : 197
    Points
    197
    Par défaut
    Je pense : Les simples côte dans ton where doivent être des doubles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * FROM "ARTICLE","HOTEL","PRIX","REGION","FOURNISSEUR" 
               WHERE "ARTICLE".id_hotel="HOTEL".id_hotel 
                AND "PRIX"."REFERENCE"="ARTICLE"."REFERENCE"
                    AND "HOTEL".id_region="REGION".id_region
                AND "ARTICLE".id_fournisseur="FOURNISSEUR".id_fournisseur  
                           GROUP BY "ARTICLE"."REFERENCE"
                                            ORDER BY "ARTICLE"."REFERENCE" 
                                             LIMIT 1 offset 10;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    je pense qu'il y a une ambiguité aux niveau des colonnes communes. il ne sé par exemple dequelle table, ARTICLE ou FOURNISSEUR, prendre la colonne "id_fournisseur".

    donc ne mets pas * au niveau du select, mets plutot toutes le colonnes dont ta besoin préfexées par le nom de la table. exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select "ARTICLE".id_fournisseur, "ARTICLE"."REFERENCE"...
    j'espère que ça répond à ton pbm.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut
    en changeant les simples quotes par les doubles, le msg d'erreur a changé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR: column "ARTICLE.id_xml" must appear in the GROUP BY clause or be used in an aggregate function

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    maintenant c un pborblème de groupement.
    rajoute la colonne "ARTICLE.id_xml" dans la clause groupe by.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY "ARTICLE"."REFERENCE","ARTICLE.id_xml"

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 109
    Points : 39
    Points
    39
    Par défaut
    pourkoi doit je ajouter la colonne "ARTICLE.id_xml", puisque je veut faire le group by selon "REFERENCE" sitot

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    pare ce que c la règle du regroupement.
    en effet, si tu veux grouper sur "ARTICLE"."REFERENCE" tu dois avoir pour une valeur donnée de "ARTICLE"."REFERENCE" les même valeurs pour toutes les lignes !
    or le message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERROR: COLUMN "ARTICLE.id_xml" must appear IN the GROUP BY clause OR be used IN an aggregate FUNCTION
    veut dire qu'il y a des valeurs différentes de "ARTICLE.id_xml" pour une même valeur de "ARTICLE"."REFERENCE"

    du coup, tu ne peux pas faire un groupement uniquement sur "ARTICLE"."REFERENCE". donc la solution : soit tu rajoutes la colonne "ARTICLE.id_xml" dans la clause groupe by, ou soit tu utilises les fonctions d'agrégat tel que (sum, avg,...) sur la mm colonne "ARTICLE.id_xml".

    A+

Discussions similaires

  1. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  2. [SQL] Problème avec une requête
    Par jcmskip dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/04/2007, 11h41
  3. [MySQL] Problème avec une requête SQL
    Par chobol dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/05/2006, 12h29
  4. [SQL Server]Problème avec une requête récursive
    Par evans dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/04/2006, 20h16
  5. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 17h47

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