【发布时间】:2015-12-04 13:08:49
【问题描述】:
这不是用一句话描述的最简单的查询,这就是为什么标题可能不是最好的原因。
基本上我有登录日志。此日志如下所示:
ContactId, LocationId, TimeStamp
这些代表在给定时间在某个位置看到的联系人(注册人)。
我想要做的是选择一个日期时间窗口,并且对于该窗口中的每一天,我想进行第一次登录和最后一次登录并计算小时差。然后,这种小时数差异应计入总时间,从而估算出联系人在当月在该地点花费的总时间。
显然应该忽略没有看到联系人的天数,也不应该使用只看到一次联系人的天数,因为无法计算差异。
我知道如何以小时为单位找出两个日期时间之间的差异:
select DATEDIFF(HOUR, datetime1, datetime2) as hoursestimate
但我不确定如何:
- 将 datetime1 和 datetime2 设为一天的第一条和最后一条记录。
- 循环遍历数据以增加天数,以查找该月的累计总小时数 (TotalHours)。
一旦我根据第一次和最后一次看到的差异获得了一段时间内的累计总小时数,我将与我的联系人表执行连接,以通过此 TotalHours 列获取他们的名字和姓氏以及顺序,因此希望是最终表我想从查询中返回会是这样的:
Id FirstName LastName TotalHours
35 Bob Bobberson 65
40 Jim Jimmerson 63
2 Harry Harrison 54
然而,我有点迷失了第 1 步和第 2 步。有什么想法吗?
【问题讨论】:
标签: sql sql-server