首页 > 解决方案 > MS Access SQL:多个条件的 Sum IIF,格式为列而不是行

问题描述

我在 MS Access 365 中工作,我有一个包含多个状态的表,我想在饼图中总结这些状态。

样本数据:

销售订单# 地位
1 新的
2 待办的
3 关闭

状态由单独表中的人类可读文本定义,但在我运行查询之前链接到主表中。我有以下查询来创建表中每个状态的摘要。

SELECT 
     Sum(IIf(Table.Status=1,1,0)) AS ["New"], 
     Sum(IIf(Table.Status=2,1,0)) AS ["Pending"], 
     Sum(IIf(Table.Status=3,1,0)) AS ["Closed"], 
FROM Table;

问题是这会将查询结果格式化为:

新的 待办的 关闭
1 1 1

由于围绕 MS Access 图表的疯狂规则,饼图基于第一两列的数据,而不是其他任何内容。如何将结果重新格式化为列格式以使图表正常工作?谢谢你。

标签: sqlms-access

解决方案


您是否在寻找三行两列?

SELECT SWITCH(Table.Status = 1, "New",
              Table.Status = 2, "Pending",
              Table.Status = 3, "Closed",
              1=1, "Other"
             ) as status,
       COUNT(*)
FROM Table
GROUP BY SWITCH(Table.Status = 1, "New",
                Table.Status = 2, "Pending",
                Table.Status = 3, "Closed",
                1=1, "Other"
               );

推荐阅读