ACCESS - join special

Fermé
darkkjarod - 19 nov. 2007 à 15:42
mishan Messages postés 38 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 19 mai 2008 - 20 nov. 2007 à 10:54
Bonjour,

J'ai une question pour ACCESS.

J'ai deux table de donnée:

TABLE 1
Name Client Reference
A B steph
A B goffette

Table 2
Name Client Reference from table 1
A A Steph


L'astuce est que dans le join de la table 2, il ne me fasse aparaitre que la premiere reference trouvée (steph) et pas la deuxieme.

Comment faire?

merci
A voir également:

8 réponses

mishan Messages postés 38 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 19 mai 2008 1
19 nov. 2007 à 15:56
Bonjour,

Si tu veux n'afficher que les enregistrements de la table 1 qui n'existe que dans la table 2, va dans les propriété de jointure dans ta requete puis sélectionne le 3eme option...

Je ne sais pas si ca va répondre a ta question.
0
si je choisi l'option trois, il va me donner steph et goffette, alors que je ne souhaite avoir que steph.

je me trompe?
0
mishan Messages postés 38 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 19 mai 2008 1
19 nov. 2007 à 16:27
La ca dépend quel table tu veux afficher :

Si tu veux afficher la table 2 alors il faut choisir la 2eme option

Si tu veux afficher la table 1 alors c'est la 3eme

Sinon tu a la possibilité de faire une requete avec une sous requete :

Quelle table tu veuxc afficher, je suppose que c'est la table 2 et sur quelle champ fais tu la jointure ?
0
je fais la jointure si name + client.

Je veux voir la table2.

Et j'aimerais que si il trouve deux equivalenec (name + client) dans la table 1, il ne me donne que un resultat (steph).

Est ce plus clair?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mishan Messages postés 38 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 19 mai 2008 1
19 nov. 2007 à 16:55
Ben si tu fais une jointure sur Name+Client, une jointure normale devrait suffire non (1ere option) parce que ta table2 ne va afficher que les enregistrements qui existe dans la table1.

Dans le cas d'un doublon, il suffit de faire un regroupement...

tu as déja essayé ca :

SELECT Table2.name, Table2.client, Table2.ref
FROM Table1 INNER JOIN Table2 ON (Table1.client = Table2.client) AND (Table1.name= Table2.name)
GROUP BY Table2.name, Table2.client, Table2.ref;


En plus, dans l'exemple que tu fournis, tu n'obtient logiquement aucun enregistrements affiché !!
0
ou desole, je me suis trompe dans mon exemple, la deuxieme valeur doit etre egal à B.

j essaye. Le truc c est que je fais un join sur une 20aine de colone et qu il me dit que mes join sont ambigu..
0
je viens de le refaire et cela ne fonctionn pas. Mais je me suis probablement mal explique.

je recommence:

Table1

Contrat date Reference
A mai steph
A mai roland


Table 2
Contrat date
A mai


Queries 1

Resultat attendu:

Contratfrom table 2 datefromtable2 referencefromtable1
A mai steph

Resultat obtenu avec le join:

Contratfrom table 2 datefromtable2 referencefromtable1
A mai steph
A mai roland.

Alors que je n'ai pas besoin de la deuxieme ligne, je ne souhaite que la premiere trouvee dans la table 1.

Est ce possible? je ne trouve vraiment pas.

Merci pour votre aide.

Stephane
0
mishan Messages postés 38 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 19 mai 2008 1
20 nov. 2007 à 10:54
Et si tu au lieu de faire un regroupement, tu ne prenais que le premier enregistrement ??

Genre :

SELECT First(Table2.nom) AS PremierDenom, First(Table2.Date) AS PremierDeDate, First(Table1.ref) AS PremierDeref
FROM Table1 INNER JOIN Table2 ON (Table1.Date = Table2.Date) AND (Table1.nom = Table2.nom);

Ca affiche :
T2.Contrat T2.Date T1.Ref
A Mai Steph


Le problème c'est que si tu as une 3eme ligne (par exemple A Mai TOTO), cela affichera toujour A Mai Steph.

Je ne sais si ca répond à ta question....
0