sql - 统计员工出勤率

标签 sql count

我正在尝试编写一个报表来计算员工的出勤情况,并通过计算员工的 idname 以及他过去 3 个月的工作天数来执行第 1、2 和 3 个月的 NewTimeAttendance 上有重复的 id

我试着数一下:

Select COUNT(employeeid)
  from NewTimeAttendance
 where employeeid=1 and (month=1 or month = 2 or month = 3)

这绝对有效,但仅适用于一名员工。

第二次尝试:

SELECT COUNT(NewEmployee.EmployeeID)
  FROM NewEmployee INNER JOIN NewTimeAttendance 
    ON NewEmployee.EmployeeID = NewTimeAttendance.EmployeeID
   and (month=1 or month =2 or month = 3)

这是有效的,但它统计了所有员工,我希望它将每个EmployeeIdEmployeeName天数作为新记录执行.

最后一次尝试:(在你看到代码之前......这是错误的......但我正在尝试)

for i in  0..27 loop
   SELECT COUNT(NewEmployee.EmployeeID),NewEmployee.EmployeeId,EmployeeName
     FROM NewEmployee INNER JOIN NewTimeAttendance 
       ON NewEmployee.EmployeeID(i) = NewTimeAttendance.EmployeeID
      and (month=1 or month =2 or month = 3)
end loop

我真的需要帮助...提前致谢。

最佳答案

您需要一个GROUP BY函数,请尝试:

SELECT COUNT(NewEmployee.EmployeeID), NewEmployee.EmployeeId,EmployeeName
 FROM NewEmployee INNER JOIN NewTimeAttendance 
  ON NewEmployee.EmployeeID = NewTimeAttendance.EmployeeID
   and (month=1 or month =2 or month = 3)
GROUP BY NewEmployee.EmployeeID, EmployeeName

关于sql - 统计员工出勤率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2447009/

相关文章:

mysql - 结合 DROP USER 和 DROP DATABASE 与 SELECT .. WHERE 查询?

javascript - Javascript 中计数器相同值的 3 倍

mysql - 如何重复行?

mysql - 将几何图形从 MSSQL 导入 MySQL(线串)

javascript - 如何在不将变量重置为零的情况下获得更高的值?

Mysql使用子查询对同一个表进行多重计数

mysql - 来自两个不同表的 COUNT

sql - MySQL COUNT() 多列

MySQL:传递给具有多列和行的PROCEDURE查询结果

mysql - SQL:从列表中提取项目并将其放入新行