SQL求助:如何计算2018年每位员工的总工时?
计算2018年每位员工工时总和的正确SQL查询
你的原查询存在两个关键问题:
- 多余的
distinct:group by PersonId已经会自动返回每个唯一员工的汇总结果,不需要额外添加distinct - 错误的分组字段:
group by里包含了reghours,这会让数据库按「员工ID+单条工时记录值」的组合分组,最终得到的不是每个员工的总工时,而是同一员工下相同工时数值的分组汇总
修正后的查询语句:
select PersonId, SUM(reghours) as '2018' from TimeSheetsView where LEFT(yearweek, 4) = '2018' group by PersonId
补充说明:如果yearweek是日期/日期时间类型字段,建议用更规范的年份提取方式——YEAR(yearweek) = 2018,这样能利用字段上可能存在的索引,提升查询效率。
内容的提问来源于stack exchange,提问作者user20053746
相关产品推荐
相关产品推荐

