MS Access SQL 跨行和列分组查询

MS Access SQL Query with grouping across rows and columns

我在 MS Access 中有一个 table,其布局如下。我正在使用 MS Access 2019

Category1  Qty1   Category2 Qyt2
================================
A           10       B       2
B           3        C       4
A           2        A       4
C           3        B       3

我希望输出为

Category     Qty
================
A             16
B              8
C              7

请建议如何在 MS Access 中使用查询来实现此目的。

谢谢

使用 UNION 查询将数据重新排列为规范化结构应该放在首位。

SELECT Category1 AS Cat, Qty1 AS Qty, 1 AS Src FROM tablename
UNION SELECT Category2, Qty2, 2 FROM tablename;

将该查询用作聚合查询的源。

在内部子查询中使用 UNIONALLGROUP BY

这里检查 SQL Fiddle

  SELECT Category, SUM(Qty) as Qty FROM (
        SELECT Category1 AS Category, Qty1 AS Qty FROM TAB1
        UNION ALL
        SELECT Category2 as Category, Qty2 AS Qty FROM TAB2
    ) as TAB
    GROUP BY TAB.Category