在 MS Access 或 Excel 中连接多个表

问题描述

我有多个 (3+) Excel 表格(前 3 个表格仅提供第一行用于演示目的)。我想要实现的是显示所有表中的所有行,并在存在共同值的地方加入它们,即我试图模拟 FULL OUTER JOIN。

TBL1

IDno         IDname          d10         d30        datecreated  

12-778        Robetrt         62         72          9/25/2020                          

TBL2

IDno         IDname          result3      datecreated    

12-124        Sam2            text22        9/25/2018                                 

TBL3

IDno         IDname          Area         datecreated    

12-324        Trinton         6.25         9/25/2013                                 

有时不同表之间的 IDno 是相同的,但在大多数情况下它们是不同的。

我做了一个 UNION 查询以返回表中的所有 IDno:

SELECT TBL1.IDno,TBL1.IDname FROM TBL1 UNION SELECT TBL2.IDno,TBL2.IDname FROM TBL2 UNION SELECT TBL3.IDno,TBL3.IDname FROM TBL3;

我将查询命名为 IDs。然后,我想得到一个表格,该表格将显示所有行并合并 IDno 相同的行:

结果

IDno     IDname     d10       d30       result3      Area  

我用过:

SELECT
IDs.IDno,IDs.IDname,TBL1.d10,TBL1.d30,TBL2.result3,TBL3.Area
FROM ((IDs
left join TBL1 on IDs.IDno = TBL1.IDno)
left join TBL2 on TBL1.IDno = TBL2.IDno)
left join TBL3 on TBL1.IDno = TBL3.IDno

UNION

SELECT
IDs.IDno,TBL3.Area
FROM ((IDs
right join TBL1 on IDs.IDno = TBL1.IDno)
right join TBL2 on TBL1.IDno = TBL2.IDno)
right join TBL3 on TBL1.IDno = TBL3.IDno

WHERE 
IDs.IDno IS NULL;

最终结果是带有一些附加行的 LEFT JOINed 表,这些行显示 IDno 和 IDn​​ame,但没有来自 TBL2 或 TBL3 的数据。在这种情况下,我无法弄清楚如何 UNION 左右 JOIN 以实现 FULL OUTER JOIN。它适用于 2 个表,但不适用于 Acess 中的三个或更多。有没有办法在不需要 sql 服务器的情况下在 Excel(Power query)或其他地方连接多个表?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)