计算员工出勤率

jjj*_*jjj 2 sql count

我试图写一个声明中用于计算员工考勤和执行他们的id,name与天,他通过计算重复工作的前3个月idNewTimeAttendance 为每月1,2和3.

我试过数:

Select COUNT(employeeid)
  from NewTimeAttendance
 where employeeid=1 and (month=1 or month = 2 or month = 3)
Run Code Online (Sandbox Code Playgroud)

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

第二次尝试:

SELECT COUNT(NewEmployee.EmployeeID)
  FROM NewEmployee INNER JOIN NewTimeAttendance 
    ON NewEmployee.EmployeeID = NewTimeAttendance.EmployeeID
   and (month=1 or month =2 or month = 3)
Run Code Online (Sandbox Code Playgroud)

这是有效的,但它会计算所有员工,我希望它能够执行每个员工EmployeeId,EmployeeNamenumber of days作为新记录.

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

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
Run Code Online (Sandbox Code Playgroud)

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

Phi*_*rie 5

你需要一个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
Run Code Online (Sandbox Code Playgroud)