查询,假设请假记录存储在leave_record表中,员工信息存储在employee表中,两个表通过员工id关联。请假记录中的请假时间为小时数。

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连接employee和leave_record表,并以employee表作为主表,即使员工没有请假记录也会被列出来。

  2. 使用GROUP BY按照员工id和姓名进行分组,并计算每个员工的请假总时间。

  3. 使用ORDER BY按照累计时间从高到低进行排序。

sql 8、打印每个员工的累加请假时间按累加时间从高到低排序格式为:工号 姓名 累计时间--多表

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

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