我的 SQL 数据库中有一个表,用于跟踪员工的上班时间和下班时间。典型的记录如下所示
Id Device DateTime EmployeeId
-------------------------------------------------------------------------
1 InReader 2013/05/05 08:00:00 1
2 InReader 2013/05/05 08:00:05 1
3 InReader 2013/05/05 08:01:00 2
4 InReader 2013/05/05 08:02:00 3
5 InReader 2013/05/05 08:03:00 4
6 OutReader 2013/05/05 17:00:00 1
7 OutReader 2013/05/05 17:05:05 2
8 OutReader 2013/05/05 17:05:10 2
9 OutReader 2013/05/05 17:10:00 3
10 OutReader 2013/05/05 17:30:00 4
Id 只是一个自动增量列
Device 是他们点击员工卡的设备,用于打卡/打卡
DateTime 是他们点击员工卡的时间
我想知道,在一天结束时,当我生成报告时,我怎样才能协调他们的及时与超时,使得输出可能如下所示:
Employee Id In time Out time
-----------------------------------------------------------------------
1 2013/05/05 08:00:00 2013/05/05 17:00:00
2 2013/05/05 08:01:00 2013/05/05 17:05:10
3 2013/05/05 08:02:00 2013/05/05 17:10:00
4 2013/05/05 08:03:00 2013/05/05 17:30:00
注意事项:
- 请注意,员工 1 有 2 条“InReader”记录,我想记录较早的记录
- 员工 2 有 2 条“OutReader”记录,我只想记录他的最新记录
如何使用 LINQ 协调 IN 和 OUT 记录?(或 TSQL,如果在 LINQ 中不可能)