• Advertisement

Pb SQL - Not unique table

Tout ce qui concerne la version 11 & plus récentes de windev

**Windev est une marque déposée de Pcsoft**

Pb SQL - Not unique table

Messagepar pschit » Jeu Jan 08, 2009 8:29 am

Bonjour à tous,
J'essai de faire une requête à l'aide de l'éditeur de requête et je n'y arrive pas. J'obtiens le message d'erreur suivant :

Code: Tout sélectionner
Numéro d'erreur = 22
Not Unique table/alias: 'adresse'

En fait je fait une requête sur qui affiche mes clients (adresse) et les collaborateurs qui travaillent sur le client (collab_chef_groupe) sachant qu'il n'y a pas toujours de collaborateur donc je fait une jointure externe. Voici le code que me créé l'éditeur de requête. Le champ p_SocCode est un champ saisie par l'utilisateur.

Code: Tout sélectionner
SELECT
  societe.SOC_NOM AS SOC_NOM, 
  adresse.SOC_CODE AS SOC_CODE, 
  adresse.GRP_CODE AS GRP_CODE, 
  groupe.GRP_NOM AS GRP_NOM, 
  adresse.ADR_ID AS ADR_ID, 
  adresse.ADR_CODE AS ADR_CODE, 
  adresse.TITRE_CODE AS TITRE_CODE, 
  adresse.ADR_NOM AS ADR_NOM, 
  adresse.ADR_PRENOM AS ADR_PRENOM, 
  adresse.COL_CODE_N1 AS COL_CODE_N1, 
  collab_chef_groupe.COL_NOM AS COL_NOM, 
  collab_chef_groupe.COL_PRENOM AS COL_PRENOM
FROM
  groupe INNER JOIN adresse ON adresse.GRP_CODE  =  groupe.GRP_CODE, 
  societe INNER JOIN adresse ON adresse.SOC_CODE  =  societe.SOC_CODE, 
  collab collab_chef_groupe RIGHT OUTER JOIN adresse ON adresse.COL_CODE_N1  =  collab_chef_groupe.COL_CODE
WHERE
  (
  adresse.SOC_CODE = p_SocCode
)
ORDER BY
  SOC_NOM ASC, 
  GRP_CODE ASC, 
  ADR_CODE ASC

Merci d'avance pour votre aide à tous.
Pschit
Avatar de l’utilisateur
pschit
Membre
 
Messages: 88
Inscription: Ven Sep 14, 2007 2:46 pm

Advertisement

Re: Pb SQL - Not unique table

Messagepar Firetox » Jeu Jan 08, 2009 11:17 am

Bonjour,

en fait cela vient du fait que vous avez deux fois la table adresse avec le même nom donc il faut soit mettre un alias sur la table soit repenser un peu la requête

vous mélangerez des jointures avec on avec des jointure standard (virgule) donc il faudrait plus d'informations sur la structure et les liaisons car sinon ça va être difficile de vous aider

il faudrait savoir pourquoi vous faites une liaison de groupe vers adresse et ensuite de société vers adresse : cela voudrait dire que groupe a une adresse et que société a une adresse dans ce cas dans le select quels sont les elements d'adresse pour groupe et ceux pour société
.

une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
@+

http://www.Emidev.fr
Firetox
Membre Confirmé
 
Messages: 481
Inscription: Jeu Sep 02, 2004 10:28 am
Localisation: Grenoble

Re: Pb SQL - Not unique table

Messagepar pschit » Jeu Jan 08, 2009 12:47 pm

Firetox a écrit:Bonjour,

en fait cela vient du fait que vous avez deux fois la table adresse avec le même nom donc il faut soit mettre un alias sur la table soit repenser un peu la requête

vous mélangerez des jointures avec on avec des jointure standard (virgule) donc il faudrait plus d'informations sur la structure et les liaisons car sinon ça va être difficile de vous aider

il faudrait savoir pourquoi vous faites une liaison de groupe vers adresse et ensuite de société vers adresse : cela voudrait dire que groupe a une adresse et que société a une adresse dans ce cas dans le select quels sont les elements d'adresse pour groupe et ceux pour société


Bonjour Firetox et merci pour ton aide. La structure de ma base est la suivante :

Adresse : Correspond en faite à un client
Groupe : Le client (adresse) appartient à un groupe de client particulier. J'utilise le liens entre adresse et groupe pour récupérer le nom du groupe auquel le client appartiens
Societe : Le client (adresse) est géré par une société du groupe pour lequel je travail. J'ai besoin du nom de la société pour les regroupés
Collab : Le client est géré par un collaborateur qui est responsable du dossier. Je doit donc faire un liens vers "collab" mais un client (adresse) n'a pas toujours de responsable donc je doit faire une clé externe.

Je n'ai donc pas besoin d'utiliser d'alias sur Adresse puisqu'il s'agit toujours du même client ?

Encore merci pour ton aide qui est précieuse.
Pschit
Avatar de l’utilisateur
pschit
Membre
 
Messages: 88
Inscription: Ven Sep 14, 2007 2:46 pm

Re: Pb SQL - Not unique table

Messagepar Firetox » Jeu Jan 08, 2009 1:48 pm

Bonjour,

dans ce cas ta requete devrait etre plutot
Code: Tout sélectionner
    SELECT
      societe.SOC_NOM AS SOC_NOM,
      adresse.SOC_CODE AS SOC_CODE,
      adresse.GRP_CODE AS GRP_CODE,
      groupe.GRP_NOM AS GRP_NOM,
      adresse.ADR_ID AS ADR_ID,
      adresse.ADR_CODE AS ADR_CODE,
      adresse.TITRE_CODE AS TITRE_CODE,
      adresse.ADR_NOM AS ADR_NOM,
      adresse.ADR_PRENOM AS ADR_PRENOM,
      adresse.COL_CODE_N1 AS COL_CODE_N1,
      collab_chef_groupe.COL_NOM AS COL_NOM,
      collab_chef_groupe.COL_PRENOM AS COL_PRENOM

    FROM
     
      adresse
      INNER JOIN Groupe ON adresse.GRP_CODE  =  groupe.GRP_CODE
      INNER JOIN societe ON adresse.SOC_CODE  =  societe.SOC_CODE
      LEFT JOIN collab collab_chef_groupe ON adresse.COL_CODE_N1  =  collab_chef_groupe.COL_CODE

    WHERE
      (
      adresse.SOC_CODE = p_SocCode
    )
    ORDER BY
      SOC_NOM ASC,
      GRP_CODE ASC,
      ADR_CODE ASC


en fait je pars d'adresse puisque le where porte sur adresse et donc les jointures sont alors naturelles sur les autres tables

Bon dev
@+
.

une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
@+

http://www.Emidev.fr
Firetox
Membre Confirmé
 
Messages: 481
Inscription: Jeu Sep 02, 2004 10:28 am
Localisation: Grenoble



  • Advertisement

Retourner vers Forum windev 11 & plus récentes

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités