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;
将该查询用作聚合查询的源。
在内部子查询中使用 UNIONALL
和 GROUP 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
我在 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;
将该查询用作聚合查询的源。
在内部子查询中使用 UNIONALL
和 GROUP 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