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 :

champ non reconnu alors qu'il existe


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut champ non reconnu alors qu'il existe
    bonjour à tous

    voici ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT ch.libelle as ch_lib, ch.id as ch_id, a.nom as ag_lib, cont.agence as ag_id, COUNT(DISTINCT(comz.id)) as nbCommande, conc.agence as concAgence, a.id as aAgence,
    comz.id as idCommande
    FROM ".CHALL." ch, ".COM." comz, ".CONTENIR." cont
    LEFT JOIN ".AGENCE." a ON cont.agence=a.id
    LEFT JOIN ".CONCERNER." conc ON conc.commande=comz.id
    WHERE ch.id=cont.challenge AND comz.id=cont.commande AND cont.fournisseur=conc.fournisseur AND conc.facture=0 AND comz.type=0
    GROUP BY ch_id, ag_id
    ORDER BY ch_id, nbCommande, ch_lib, ag_id
    elle est un peu complexe désolé

    sur cette requête je n'ai jamais eu de soucis jusqu'à aujourd'hui car on vient de changer de serveur et on est passé en mySql 5 (je ne sais pas si ça joue ...)
    il me ressort l'erreur suivante : Unknown column 'comz.id' in 'on clause'

    le problème c'est que comz.id existe bien dans ma table ".COM."
    pour preuve j'ai fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT comz.id FROM ".COM." comz
    et j'ai bien eu tous les résultats

    je fais donc appel à votre aide, car on est 3 à avoir essayé de trouver quelque chose mais en vain !!

    merci d'avance pour votre aide

    EDIT : je précise que j'ai essayé d'enlever les 2 LEFT JOIN et que la requête est passée, mais évidemment ça ne retourne pas les résultats voulus. Il est donc possible que ça viennent de là.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    écris toutes tes jointures avec des joins et cela devrait fonctionner

    tu es sous MySQL?

  3. #3
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    oui je suis bien sous MySQL
    le JOIN ne changera rien
    je viens juste de trouver une solution
    MySQL 5 est capricieux et il faut donc mettre toute la suite de "FROM" entre parenthèse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT ch.libelle AS ch_lib, ch.id AS ch_id, a.nom AS ag_lib, cont.agence AS ag_id, COUNT(DISTINCT(comz.id)) AS nbCommande, conc.agence AS concAgence, a.id AS aAgence,
    comz.id AS idCommande
    FROM (".CHALL." ch, ".COM." comz, ".CONTENIR." cont)
    LEFT JOIN ".AGENCE." a ON cont.agence=a.id
    LEFT JOIN ".CONCERNER." conc ON conc.commande=comz.id
    WHERE ch.id=cont.challenge AND comz.id=cont.commande AND cont.fournisseur=conc.fournisseur AND conc.facture=0 AND comz.type=0
    GROUP BY ch_id, ag_id
    ORDER BY ch_id, nbCommande, ch_lib, ag_id

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    en mettant que des join, ça fonctionne aussi
    http://mysql.developpez.com/faq/?pag...ltiples_mysql5

    A+

    Michel

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

Discussions similaires

  1. Fichier non trouvé alors qu'il existe
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/11/2014, 14h27
  2. type du champ non reconnu
    Par yapy00333 dans le forum Débuter
    Réponses: 2
    Dernier message: 21/07/2013, 13h59
  3. Réponses: 1
    Dernier message: 30/01/2012, 22h34
  4. Réponses: 18
    Dernier message: 06/11/2010, 17h09
  5. [VBA-E] Probleme PivotField champs non reconnu
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/11/2006, 14h25

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