You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MYSQL查询管理员总工时无法按个体汇总问题咨询

正确查询实现方案

修正后的正确语句如下:

SELECT a.empId, a.name, SUM(h.hours) AS total_hours
FROM Administrator a
INNER JOIN AdmWorkHours h ON a.empId = h.empId
GROUP BY a.empId, a.name

原有语句问题说明

  • 未指定两表关联条件:直接用逗号连接两张表会生成笛卡尔积,所有行交叉匹配,计算出来的工时完全错误
  • 未加分组规则:聚合函数SUM需要配合GROUP BY按管理员维度拆分,否则只会返回所有工时的总和单条结果
  • 多余的DISTINCT修饰:如果同一个管理员存在多天工时相同的情况,加DISTINCT会导致重复的工时被去重少算,统计结果不准

如果需要按工时排序,在末尾加ORDER BY total_hours ASC即可。如果需要统计没有工时记录的管理员(总工时返回0),可以改用LEFT JOIN+IFNULL处理:

SELECT a.empId, a.name, IFNULL(SUM(h.hours), 0) AS total_hours
FROM Administrator a
LEFT JOIN AdmWorkHours h ON a.empId = h.empId
GROUP BY a.empId, a.name

内容的提问来源于stack exchange,提问作者Sl33pyWalrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:39:04