我试图估计人们在一段时间内工作了多少小时。我想按部门和他们进行的工作是什么区域,以显示这个现在我有这样的:按部门划分的每小时和平均每小时工作时间
SELECT M.MemberDepartmentID,T.TaskName,
COUNT(DATEDIFF(HOUR, TT.StartTime, TT.EndTime)) 'Hours',
AVG(DATEDIFF(HOUR, TT.StartTime, TT.EndTime)) Average
FROM Member.TaskTracking TT
LEFT OUTER JOIN Member.Task T
ON TT.TaskID=T.TaskID
JOIN dbo.tblMember M
ON TT.MemberID=M.MemberID
WHERE M.FullTime=1
AND M.EmployeeSalary=1
AND (TT.StartTime >= '2013-10-01'
AND TT.EndTime < '2013-11-01')
GROUP BY M.MemberDepartmentID,T.TaskName
ORDER BY M.MemberDepartmentID,T.TaskName
我不知道如何来确认是否是正确的,但有些肯定出甚至零平均值如果有工作小时。有些平均值比工作时间长。例如,以下是我的一些结果:
MemberDepartmentID TaskName Hours Average
---------------------------------------------------
1 Packing 25 0
1 Picking 6 0
1 PreScanning 38 7
4 Picking 2 104
建议?
开始和结束时间始终在数据库中有值吗? – StingyJack
你的意思是使用计数?如果你想知道我工作了多少小时,我想你想用一笔钱。伯爵只会告诉你有多少事件,但他们可能都是零。 – Andrew
@SingyJack - 是的,他们做 – ash