SQL 查询:计算员工累计请假时间并排序
SQL 查询:计算员工累计请假时间并排序
本教程将使用 SQL 查询语句计算每个员工的累计请假时间,并按照累计时间从高到低排序,展示每个员工的工号、姓名和累计请假时间。
假设:
- 请假记录存储在
leave_record表中,员工信息存储在employee表中。 - 两个表通过员工 ID 关联。
- 请假记录中的请假时间为小时数。
SQL 代码:
SELECT e.id, e.name, SUM(lr.leave_time) AS total_leave_time
FROM employee e
LEFT JOIN leave_record lr ON e.id = lr.employee_id
GROUP BY e.id, e.name
ORDER BY total_leave_time DESC;
解释:
- 使用
LEFT JOIN连接employee和leave_record表,并以employee表作为主表,即使员工没有请假记录也会被列出来。 - 使用
GROUP BY按照员工 ID 和姓名进行分组,并计算每个员工的请假总时间。 - 使用
ORDER BY按照累计时间从高到低进行排序。
结果示例:
| 工号 | 姓名 | 累计时间 | |---|---|---| | 1 | 张三 | 40 | | 2 | 李四 | 30 | | 3 | 王五 | 20 |
注意:
- 请根据实际情况修改表名和字段名。
- 请确保
leave_record表中的leave_time字段是小时数。 - 如果需要按照其他字段进行排序,可以修改
ORDER BY语句。
原文地址: https://www.cveoy.top/t/topic/ouJX 著作权归作者所有。请勿转载和采集!