[ACCESS]Difficulté d'execution d'une requete SQL

Difficulté d'execution d'une requete SQL [ACCESS] - SQL/NoSQL - Programmation

Marsh Posté le 11-02-2009 à 10:22:19    

Bonjour à tous,
 
Je vous expose mon souci...Je dois créer un publipostage, en récupérant les nom, prenom, entreprise,adresse,cp,bp et ville de chaque client que l'on souhaite contacter...
 
J'ai une table T_employés qui contient NOM,PRENOM,ENTREPRISE.
J'ai une table T_sociétés qui contient ENTREPRISE,ADRESSE,CP,BP,VILLE
 
Il faut savoir qu'une société peut avoir plusieurs adresses(siège social,usines,etc...)
 
J'ai une relation entre T_employés.[ENTREPRISE] et T_sociétés.[ENTREPRISE]
 
Ma requete est actuellement la suivante:

Code :
  1. SELECT DISTINCT T_employés.[NOM SOCIETE], T_employés.NOM, T_employés.PRENOM, T_sociétés.ADRESSE
  2. FROM T_sociétés RIGHT JOIN T_employés ON T_sociétés.[NOM SOCIETE] = T_employés.[NOM SOCIETE]
  3. WHERE (([ENVOI SOMMAIRE LES ENSEIGNES]=-1));


 
 
Le souci, c'est que pour chaque client,on me renvoit plusieurs lignes avec nom, prenom, entreprise,adresse,cp,bp et ville où chaque ligne est une adresse différente de l'entreprise.
 
J'ai besoin d'envoyer 656 courriers, et chaque personne est affectée à une entreprise particulière.
J'ai donc besoin de sélectionner l'adresse exacte de chaque personne, et pas chaque adresse de l'entreprise.
Actuellement, il me renvoit 964 résultats, alors qu'il m'en faut 656....J'ai donc 964-656= 308 lignes à corriger.
 
Comment faire pour que le pc me renvoie les bonnes adresses?
 
Je désespere, j'ai essayé les GROUP BY, les DISTINCT, les INNER JOIN, LEFT JOIN, etc etc....
 
 
Aidez-moi s'il vous plait :)
 
Merci beaucoup à vous tous

Reply

Marsh Posté le 11-02-2009 à 10:22:19   

Reply

Marsh Posté le 11-02-2009 à 10:31:35    

Tu as des clés primaires sur tes tables? Peux tu nous dire quels sont les champs de tes deux tables.
 
Si c'est ce que tu as marqué, il n'y a pas d'identifiant unique permettant de relier les deux tables donc tu vas avoir des utilisateurs qui vont avoir plusieurs sociétés...

Reply

Marsh Posté le 11-02-2009 à 10:40:33    

J'ai des clés primaires qui ont été mises automatiquement par access...
Je sais pas si je suis clair, je débute sur access...
Ma BDD access provient d'un fichier excel que j'ai coupé en 2:
Une partie Entreprise, et une partie employés.
 
J'ai noté dans mon premier post les champs de mes tables ( ceux qui nous intéressent-les autres concernent les relances commerciales)
 
Actuellement, chaque employé est affecté à une entreprise, il n'y a pas de soucis la dessus, mais si je cherche à récupérer l'adresse de l'entreprise, il va me sortir TOUTES les adresses....ce qui me gène un peu...
 
 
Merci à toi "aspirateur" de m'apporter un coup de main :)

Reply

Marsh Posté le 11-02-2009 à 10:50:26    

Je vais essayer de t'expliquer l'importance des clefs primaires.

 

Prenons un exemple simple.

 

Voila un fichier excel simple que nous allons scinder en deux (comme tu l'as fait  ;) )

 

Nom         prenom      entreprise         adr                    ville
Dupont      Pierre         duchemol        rue des fleurs    paris
Durand      jacques      duchemol        rue des fleurs    paris
Coste      Laurent        duchemol        ave belle            Lyon

 


Si je veux faire 2 tables voici comment elle seront:

 

Employe(id , nom, prenom, id_ent) <--- id sera la clef primaire (n°auto de accès)
Entreprise(id_ent, adr , ville) <-- id_ent sera la clef primaire (n°auto de accès)

 

tu remarques que dans "Employe" il y a aussi 'id_ent'. Voilà les 2 tables de notre exemple:

 

EMPLOYE
Nom         prenom      id_ent
Dupont      Pierre         1
Durand      jacques      1
Coste      Laurent        2

 


ENTREPRISE:
id_ent     entreprise         adr                 ville
1               duchemol        rue des fleurs    paris
2              duchemol        ave belle            Lyon

 


C'est plus clair pour toi?


Message édité par aspirateur le 11-02-2009 à 10:50:51
Reply

Marsh Posté le 11-02-2009 à 10:54:47    

Ah d'accord mais moi j'ai Numéro comme clé primaire pour T_entreprise, et Numéro comme clé primaire pour T_employés
 
Il faut que je mette Numéro_Entreprise dans T_employés en fait?
 
Je comprends vite mais faut m'expliquer longtemps...

Reply

Marsh Posté le 11-02-2009 à 11:01:53    

Oui mais il te faut un numéro unique par entreprise, dans ta table entreprise tu ne doit pas avoir 2 lignes identiques.

Reply

Marsh Posté le 11-02-2009 à 11:09:49    

Oula d'accord....En gros, je repars à 0 :)
Mon patron va être ravi :)
Je te tiendrais au courant de l'avancement :)
J'ai pas mal de choses à faire en urgence, donc si jamais,je reviendrais sur ce sujet plus tard...
 
Merci en tout cas!!!Super sympa et réponse ultra rapide :)

Reply

Marsh Posté le 11-02-2009 à 11:23:04    

Si tu repars de ton fichier excell ca devrait pas poser de soucis si tu sais manipuler les filtres.
 
Bon courage ;)

Reply

Marsh Posté le 11-02-2009 à 11:33:49    

oui mais va falloir se retaper toutes les requetes et tous les formulaires, ca va etre la lutte....
Bref, je verrais bien !!
Merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed