ACCESS - join special

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
Configuration: Windows Vista
Internet Explorer 7.0

8 réponses

  1. 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
    1. 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
      1. 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
        1. 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
          1. 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
            1. 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
              1. 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
                1. 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