使用MS Access Union查询合并3个表/查询
题
我已经建立了一个MySQL数据库来存储账单付款。我办公室中的每个人都有MS访问权限,因此我正在使用MS访问并链接到后端的MySQL表。
我创建了一些访问查询,这些查询参考MySQL表,进行了一些操作,现在想将三个查询(带有相同的表结构)合并为我可以构建报告的一个。
通过我的研究(第1条, 第2条, ,以及其他),我发现工会查询是我需要的。我可以安装2个表格,但是当我尝试将第三张结合时,查询未能执行。我已经单独测试了每个组合的联合查询,(1-2、1-3、2-3),任何一对起作用。我试图理解我可能做错了什么,以将第三查询纳入一个联盟。您能提供任何建议吗?
表1 = A表2 = B表3 = C
SELECT A.Year, A.BillingQuarter, A.Name, A.ObjectCode, A.Amount
FROM A
UNION ALL SELECT B.Year, B.BillingQuarter, B.Name, B.ObjectCode, B.Amount
FROM B
UNION ALL SELECT C.Year, C.BillingQuarter, C.Name, C.ObjectCode, C.Amount
FROM C
;
* 更新 *将每个查询出口到独立桌子之后,我能够运行一个3台的联合所有查询并将它们合并在一起。因此,问题显然在于我尝试将3个查询的尝试,而不是在3张表中。想法?
谢谢!
解决方案
我无法在访问中进行测试,但它在SQL Server中起作用,请选择带有联合的前两个表作为派生表和联合表C和派生表。
SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM
(SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM @A
UNION ALL
SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM B)
AS Derived
UNION ALL
SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM C
可能值得研究模式设计 /关系,看看是否可以避免这种情况。
其他提示
您需要一个分号(;)来结束查询。见下文:
SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM
(SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM @A
UNION ALL
SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM B)
AS Derived
UNION ALL
SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM C;
不隶属于 StackOverflow