【发布时间】:2013-06-21 07:39:05
【问题描述】:
我的 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 只是一个自增列
设备是他们用来刷员工卡、打卡/打卡的设备
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 中不可能)
【问题讨论】:
-
记录是否只有一天?他们每晚都擦吗?