Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Access SQL:Sum IIF用于多个条件,格式为列而不是行_Sql_Ms Access - Fatal编程技术网

MS Access SQL:Sum IIF用于多个条件,格式为列而不是行

MS Access SQL:Sum IIF用于多个条件,格式为列而不是行,sql,ms-access,Sql,Ms Access,我在MS Access 365中工作,我有一个包含多个状态的表,我想在饼图中总结这些状态 样本数据: 销售订单# 地位 1. 新的 2. 悬而未决的 3. 关闭 您要找的是三行两列吗 SELECT SWITCH(Table.Status = 1, "New", Table.Status = 2, "Pending", Table.Status = 3, "Closed",

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

样本数据:

销售订单# 地位 1. 新的 2. 悬而未决的 3. 关闭
您要找的是三行两列吗

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"
               );

我认为这是一条艰难的道路。为什么不分组计算呢

SELECT status, count(status) 
  FROM Table
 GROUP BY status;
我的Android手机没有MS访问权限,因此无法显示输出

前面的查询给出了名称的ID计数,因为您提到的
StatusName
可能是:

SELECT StatusName, count(StatusName) 
  FROM Table
 GROUP BY StatusName;

这假设不需要连接到其他
表来解决计数问题。

Hah,是的,我在发布后不久就得出了这个结论,现在唯一的问题是我无法让图表显示实际的基于文本的状态名称,而不是代码。由于该数据库的构建方式,代码(1、2、3)与数据库后端的状态(新建、挂起、关闭)相关联。查询结果显示正确的文本值,但图表仅显示1、2、3等。那么,具有状态文本的列名是什么。。。查询很容易修改。Table.Status存储一个与TblStatus.StatusID匹配的数字,然后显示TblStatus.StatusName。问题是即使上面的查询正确返回:New-2pending-1closed-1etc。。。图表仅显示ID号。不确定这是Access糟糕的图表造成的还是我在SQL端做错了什么。我也用基于名称的计数更新了答案。就是这样,谢谢!