如何使用sql在特定月份中检索特定人员记录的等效记录

时间:2017-11-21 08:16:19

标签: sql sql-server sql-server-2012

我的任务是查看我所在部门中前三名成绩优异者的姓名。高成就者是一名普通员工,他在公司工作了一个月的最长时间,并且在本月截止日期前分配给他/她的所有任务都是固定的。我的问题:

 SELECT  distinct top 3   Regular_Employees.username , 
 DATEDIFF(HOUR,start_time,end_time)
 FROM Regular_Employees INNER JOIN Staff_Members on     
 Regular_Employees.username=Staff_Members.username INNER JOIN Tasks ON 
 Staff_Members.username=Tasks.regular_employee INNER join Attendance_Records 
 on Regular_Employees.username = Attendance_Records.staff
 WHERE MONTH(deadline) = MONTH('11/11/2017') AND YEAR(deadline) = 
 YEAR('11/11/2017') AND department=Staff_Members.department
 ORDER BY DATEDIFF(HOUR,start_time,end_time) DESC

我想在11月检索前3条记录,结果是

     daniel.magdi   2
     farid.elsoury  2
     joy.ahmed  2

员工是合适的员工,而记录'2'是一天的记录,而不是整个月的记录。如何计算每个员工每个月的记录并查看结果?

我想将日期插入'11/11/2017',结果将是  结果

  Employee      HOURS 
  daniel.magdi    180 
  farid.elsoury   179 
  joy.ahmed       175 

这些是11月份的最高记录

0 个答案:

没有答案