我正在尝试合并两组单独的数据。在两组数据之间,一些条目可能是重复的。
表格1:
Common Field A | Field 1 | Field 2
---------------------------------
a a1 a2
b b1 b2
表 2:
Common Field B | Field 3 | Field 4
---------------------------------
c c1 c2
a a1 a2
我对公共字段进行了联合查询以获得:
Common Field
---------------
a
b
c
现在我做了2个连接。联合查询和表 1 之间的一次连接,以及联合查询和表 2 之间的一次连接。基本上每个连接都已完成,以便列出联合查询的所有条目,并且表中的公共字段匹配的行将列出联合查询条目。这样做之后,我创建了一个包含所有列的查询(记住上面的两个连接)。这是我的预期:
Common Field | Common Field A | Common Field B | Field 1 | Field 2 | Field 3 | Field 4
------------------------------------------------------------------------------------------
a a a a1 a2 a1 a2
b b b1 b2
c c c1 c2
这是我得到的:
Common Field | Common Field A | Common Field B | Field 1 | Field 2 | Field 3 | Field 4
------------------------------------------------------------------------------------------
a a a a1 a2 a1 a2
b b #Error b1 b2
c #Error c c1 c2
我不确定为什么我会收到#Error 标志,我也很困惑为什么我只将它们用于公共字段条目。如果有的话,我希望至少能像这样得到它们:
Common Field | Common Field A | Common Field B | Field 1 | Field 2 | Field 3 | Field 4
------------------------------------------------------------------------------------------
a a a a1 a2 a1 a2
b b #Error b1 b2 #Error #Error
c #Error c #Error #Error c1 c2
有没有办法摆脱它们?我试过使用 IIF(IsError(....)) 但这没有用。我在网上发现了一些尝试,人们试图摆脱 #Error 消息但无法解决它。我知道最好找到问题的根源,但在这一点上,我可以摆脱#Error 消息本身。关于我应该如何处理这个问题的任何想法?
编辑:这是一些示例 SQL:
SELECT qryUnion.CommonField, tbl1.CommonFieldA, tbl2.CommonFieldB, tbl1.Field1, tbl1.Field2, tbl2.Field3, tbl2.Field4
FROM tbl2 RIGHT JOIN ( tbl1 RIGHT JOIN qryUnion ON tbl1.CommonFieldA = qryUnion.CommonField) ON tbl2.CommonFieldB = qryUnion.CommonField;
EDIT2:如果这很重要,这是连接的 SQL:
SELECT tbl1.CommonFieldA FROM tbl1 UNION tbl2.CommonFieldB FROM tbl2