【发布时间】:2014-01-19 21:36:11
【问题描述】:
我有一个包含以下示例输出的表格。
UserID Checktime CheckStatus
3175 2013-12-22 07:02:10.000 I
3175 2013-12-22 13:01:01.000 O
3175 2013-12-22 13:49:54.000 I
3175 2013-12-22 13:49:55.000 I
3175 2013-12-22 15:58:42.000 O
3175 2013-12-23 06:02:58.000 I
3175 2013-12-23 14:00:29.000 O
3175 2013-12-24 05:17:09.000 I
3175 2013-12-24 12:34:25.000 O
3175 2013-12-24 12:34:26.000 O
我想构建一个查询来实现以下结果:
UserID Date CheckIn CheckOut Hours
3175 2013-12-22 07:02:10 13:01:0 5.98
3175 2013-12-22 13:49:54 15:58:42 2.15
注意: 1.重复的IN被忽略。原始数据中的第三和第四行。 2. 小时计算时,分钟为小时的小数点。
我需要 tsql 查询的帮助来获得这些结果。
我当前的代码导致了许多其他问题 - 因为它每次都必须在临时表中重新计算。
【问题讨论】:
-
您使用的是哪个版本的 SQL Server?
-
Mike 感谢您的回复 - 我正在使用 sql server 2005
-
如果输入/输出与一天边界重叠,您希望发生什么?显然,外出时间不会有相同的日期(因此您的结果签入/签出列可能需要日期部分)。只有结账时间的情况呢?只有签到时间?何时出现重复结帐?
标签: sql sql-server tsql date sql-server-2005