两个查询:按列分组、减去相似列、显示总计

Posted

技术标签:

【中文标题】两个查询:按列分组、减去相似列、显示总计【英文标题】:Two Queries: Group by Column, Subtract Similar Columns, Show Totals 【发布时间】:2012-10-30 07:09:17 【问题描述】:

我在 Access 中设置了以下两个查询。每个查询每个组织只有 1 行,并且两个查询的组织名称是一致的。

查询 A(基于表 A 的预算模型)

Org, Jan, Feb, ... Dec, Total
-----------------------------
A,   $68, $25, ... $51, $809
B,   $23, $39, ... $13, $423
...
E,   $11, $90, ... $84, $789

查询 B(基于表 B 的预算模型)

Org, Jan, Feb, ... Dec, Total
-----------------------------
A,   $67, $25, ... $70, $821
B,   $23, $39, ... $13, $423
...
E,   $15, $45, ... $71, $755

如何创建包含以下所有信息的报告?我很难将这两个查询组合在一起,减去它们的值,然后最终在同一个报告/查询中显示总计行。

             Jan, Feb, ...  Dec,   Total
Org A:

    Model A: $68, $25, ..., $51,   $809
    Model B: $67, $25, ..., $70,   $821
    A - B  : $ 1, $ 0, ..., ($19), ($12)

Org B:

    Model A: $23, $39, ..., $13,   $423
    Model B: $23, $39, ..., $13,   $423
    A - B  : $ 0, $ 0, ..., $ 0,   $  0

...

Org E:

    Model A: $11, $90, ..., $84,   $789
    Model B: $15, $45, ..., $71,   $755
    A - B  :($ 4),$45, ..., $13,   $ 34

-------------------------------------------
Totals:

    Model A: $102, $154, ..., $148,   $2021
    Model B: $105, $109, ..., $154,   $1999
    A - B  :($ 3), $45, ..., ($ 6),   $  22

【问题讨论】:

【参考方案1】:

如果您使用一组值乘以 -1 创建一个 UNION 查询,您可以使用组织上的组总和来获得报告中的减法。报告向导将为您执行此操作。

SELECT "a" as Source, qa.Org, 
       qa.Jan, qa.Feb, qa.Dec, qa.Total
FROM qa
UNION ALL 
SELECT "b" as Source, qb.Org, 
       qb.Jan * -1, qb.Feb * -1, qb.Dec * -1, qb.Total * -1
FROM qb

您可以按来源分组以创建可以作为子报告包含在内的摘要。

【讨论】:

以上是关于两个查询:按列分组、减去相似列、显示总计的主要内容,如果未能解决你的问题,请参考以下文章

比较两个 MYSQL 表并按列返回缺失的日期和分组

如何对每个表进行分组计数并按列打印? [复制]

按列分组,优先选择另一列不为空的行

联合两个查询结果按列

限制按列分组

Pandas 按列分组并检查多个条件以创建新的分类列