MS Access中统计多列内人员姓名出现次数的实现方案问询
MS Access 实现返工次数统计方案
首先我们先约定表和字段的指代名称,你可以替换为自己实际的命名:
- 存储人员姓名的表:
员工表,姓名字段为姓名 - 存储返工记录的表:
返工记录表,需统计的字段为original_worker_1到original_worker_10
步骤1:创建联合查询打平多列字段
首先需要把分散在10个original_worker_*字段的姓名合并为单列的结果集,方便后续统计。
在Access中新建查询,关闭弹出的「显示表」窗口,切换到SQL视图,粘贴以下代码:
SELECT original_worker_1 AS 员工姓名 FROM 返工记录表 WHERE original_worker_1 IS NOT NULL UNION ALL SELECT original_worker_2 AS 员工姓名 FROM 返工记录表 WHERE original_worker_2 IS NOT NULL UNION ALL SELECT original_worker_3 AS 员工姓名 FROM 返工记录表 WHERE original_worker_3 IS NOT NULL UNION ALL SELECT original_worker_4 AS 员工姓名 FROM 返工记录表 WHERE original_worker_4 IS NOT NULL UNION ALL SELECT original_worker_5 AS 员工姓名 FROM 返工记录表 WHERE original_worker_5 IS NOT NULL UNION ALL SELECT original_worker_6 AS 员工姓名 FROM 返工记录表 WHERE original_worker_6 IS NOT NULL UNION ALL SELECT original_worker_7 AS 员工姓名 FROM 返工记录表 WHERE original_worker_7 IS NOT NULL UNION ALL SELECT original_worker_8 AS 员工姓名 FROM 返工记录表 WHERE original_worker_8 IS NOT NULL UNION ALL SELECT original_worker_9 AS 员工姓名 FROM 返工记录表 WHERE original_worker_9 IS NOT NULL UNION ALL SELECT original_worker_10 AS 员工姓名 FROM 返工记录表 WHERE original_worker_10 IS NOT NULL
保存这个查询,命名为 所有返工记录_打平。
步骤2:创建统计查询得到最终结果
再新建一个查询,同样切换到SQL视图,粘贴以下代码:
SELECT 员工表.姓名, COUNT(所有返工记录_打平.员工姓名) AS 被返工总次数 FROM 员工表 LEFT JOIN 所有返工记录_打平 ON 员工表.姓名 = 所有返工记录_打平.员工姓名 GROUP BY 员工表.姓名 ORDER BY COUNT(所有返工记录_打平.员工姓名) DESC;
运行这个查询就能得到你需要的结果:所有人员的姓名、对应被返工的总次数,没有返工记录的人员也会显示次数为0。
后续制作条形图
直接选中这个统计查询的结果,在Access的「插入」选项卡中选择条形图即可生成可视化图表,也可以将查询结果导出到Excel中制作图表。
内容的提问来源于stack exchange,提问作者GatorAdmiral03
相关产品推荐
相关产品推荐

