我的数据库中有三个表。SQL Server查询中类似员工的时间总和
第一个表是Employee
:
第二个表是EmployeeTimeIn
:(HoursConsumed有时间在几秒钟!)
三表EmployeeTimeOut
:
我写了下面的SQL查询其中列出了他们的ID和每次的工作时间在会议分组的所有员工:
select
v.EID, e.EmployeeName, v.Time_In, v.Time_Out,
convert(varchar(5), SUM(v.HoursConsumed)/3600) + ':' +
convert(varchar(5), SUM(v.HoursConsumed) % 3600/60) + ':' +
convert(varchar(5), (SUM(v.HoursConsumed) % 60)) as workingtime,
v.Date_Ref
from
(select
e1.EID, e1.Time_In, e2.Time_Out, e1.HoursConsumed,
CONVERT(VARCHAR(10), e1.Date_Ref, 111) as Date_Ref
from EmployeeTimeIn as e1, EmployeeTimeOut as e2
where e1.Refid = e2.Refid) as v, Employee as e
where v.EID = e.EmployeeID
group by
v.EID, e.EmployeeName, v.Time_In, v.Time_Out, v.HoursConsumed, v.Date_Ref;
它产生以下输出:
我需要修改此查询,以便每位员工在workingtime
列中显示总计工作时间。在这种情况下,它将显示EID 4为0:41:53的workingtime
和EID 200的0:0:39。
请指教。
(注:最终输出应该在这个例子中数据三行,因为我需要显示时间和超时最终表中的字段呢!)
请使用明确连接,而不是“表,表中”语法。 – pilcrow 2012-02-18 17:29:47
Hi @Nida Sulheri我正面临同样的问题。你能否给我提供表格结构,或者你使用相同的,我需要在我的项目中实现相同的逻辑。 Regards – 2013-12-16 06:48:09
@ A.Goutam表格结构在我上面的帖子中提到...请参阅表格截图。 – Azeem 2013-12-19 13:17:32