我已经建立了一个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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top