我想比较两个表中的两列

时间:2014-06-18 01:01:56

标签: ms-access access-vba ms-access-2007 ms-access-2010

我有两张桌子Main& Training我完全加入Main.ID = Training.EMP_ID;,但我的数据存在很大问题。

我必须使用FULL JOIN来获取两个表中的所有数据;但是我有一些ID&我的Emp_Names表格中的Training与我的Main表格不同。

我需要比较两个列并返回两个表中的所有EMP_ID并比较两个表中的EMP_Names,以确保它们不会被记录多次!

我将不胜感激任何帮助!

我为我的完整JOIN创建了UNION,我得到了这个

ID       DataA        DataB 1 
1        DataA1  
2        DataA2  
3        DataA3 
4        DataA4  
5        DataA5  
6        DataA6      DataB6 
7        DataA7      DataB7 
8        DataA8      DataB8  
9        DataA9      DataB9 
10       DataA10     DataB10  
11                   DataB11  
12                   DataB12
13                   DataB13 
14                   DataB14 
15                   DataB15

现在,我如何将这两列作为一列加入?并消除重复和重复放在一栏?

2 个答案:

答案 0 :(得分:0)

我设置了两个表,MAIN和TRAINING,每个表都有一个ID字段和一个Emp_Names字段。

获取所有ID的Union查询(ID Master List)是

Select ID from Main
Union select ID from Training;

获得所需结果的第二个查询是

SELECT [ID Master list].ID, 
Main.Emp_Names AS [Main name], 
Training.Emp_Names AS [Training name], 
IIf([main].[emp_names] Is Not Null,[main].[emp_names],[training].[emp_names]) AS Name

FROM ([ID Master list] 

LEFT JOIN Main ON [ID Master list].ID = Main.ID) 
LEFT JOIN Training ON [ID Master list].ID = Training.ID;

您可以修改iif语句中的逻辑,以更改当两个名称存在但您可能不同时执行的操作。

答案 1 :(得分:0)

听起来你正试图找到重复项,以便你可以摆脱它们。

Access具有查询向导,允许您在两个表之间查找重复项。

我建议尝试这样做以找到重复的而不是使用联盟......