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;

解释:

  1. 使用 LEFT JOIN 连接 employeeleave_record 表,并以 employee 表作为主表,即使员工没有请假记录也会被列出来。
  2. 使用 GROUP BY 按照员工 ID 和姓名进行分组,并计算每个员工的请假总时间。
  3. 使用 ORDER BY 按照累计时间从高到低进行排序。

结果示例:

| 工号 | 姓名 | 累计时间 | |---|---|---| | 1 | 张三 | 40 | | 2 | 李四 | 30 | | 3 | 王五 | 20 |

注意:

  • 请根据实际情况修改表名和字段名。
  • 请确保 leave_record 表中的 leave_time 字段是小时数。
  • 如果需要按照其他字段进行排序,可以修改 ORDER BY 语句。
SQL 查询:计算员工累计请假时间并排序

原文地址: https://www.cveoy.top/t/topic/ouJX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录