2009-04-29 19 views
0

J'ai deux tables dans MS-Access, U et R. Je les ai regroupées et je veux comparer deux champs. Cependant, parce qu'il y a X Tags dans les deux pour comparer, je reçois X lignes. Comme vous pouvez le voir sur les ID 4 et 2, il y a deux tags dans chaque table et ils sont tous les deux identiques, mais à cause de ma requête, je récupère quatre lignes parce qu'elle compare toutes les combinaisons. J'ai une valeur unique définie sur oui. Comment puis-je faire que ce travail ne récupère que deux lignes pour les exemples ci-dessous.Requêtes d'accès

ID U Tag1 R Tag2 Comp 
1 100XX7 100XX7 SAME 
2 11646L 11644 DIFFERENT 
2 11646L 1X05X DIFFERENT 
2 15650 11644 DIFFERENT 
2 15650 1X05X DIFFERENT 
3 5981X 598X0 DIFFERENT 
4 19103 19103 SAME 
4 19103 19X95 DIFFERENT 
4 19X95 19103 DIFFERENT 
4 19X95 19X95 SAME 
+1

Pouvez-vous fournir la requête retournant ces valeurs? Pouvez-vous fournir les données sur les tables utilisées dans cette requête? –

+0

pourriez-vous fournir la sortie désirée que vous voulez aussi? Donc je peux voir ce que tu veux vraiment – TStamper

Répondre

0

ajouter un

GROUP BY id, U.Tag1, R.Tag2, (Comp? perhaps if you need that in your output)

clause quelle que soit la requête que vous utilisez maintenant :)

1

Vous cherchez quelque chose sur les lignes de:

SELECT u.ID, u.Tag, r.ID, r.Tag 
FROM u INNER JOIN r ON (u.ID = r.ID) AND (u.Tag = r.Tag) 

UNION ALL 

SELECT u.ID, u.Tag, r.ID, r.Tag 
FROM u LEFT JOIN r ON (u.ID = r.ID) AND (u.Tag = r.Tag) 
WHERE r.Tag Is Null 

La première partie montre les tags correspondants, la seconde partie (après Union All) montre t ags in u qui ne se trouvait pas dans r.