Difficulté d'execution d'une requete SQL [ACCESS] - SQL/NoSQL - Programmation
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...
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
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?
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...
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.
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
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
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
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:
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