我正在尝试编写一个报表来计算员工的出勤情况,并通过计算员工的 id
、 name
以及他过去 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)
这是有效的,但它统计了所有员工,我希望它将每个EmployeeId
、EmployeeName
和天数
作为新记录执行.
最后一次尝试:(在你看到代码之前......这是错误的......但我正在尝试)
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/