我有一个表,用于存储每个人的任务,包括ContactID,StartDutyDateTime,EndDutyDateTime。有了LEAD / LEG功能 - 我可以找到 - "开始"责任 - 以及"结束"责任。 在不同任务之间隐藏REST时间 - 我可以确定这是新的一天还是短暂休息。 我不能选择第一个的DATE - 并检查最后一次 - 因为职责也会在午夜过后。
有了Lead / Leg,我发现:
我如何将每个职责合并为一行 - 我尝试了排名/行数...但这给了我无意义的结果。
我需要
13.05.2014 05:00:00 - 13.05.2014 13:25:00
17.05.2014 05:35:00 - 17.05.2014 13:20:00
我如何获得"最小/最大"每个工作日的日期时间(考虑到它也会超过午夜)?
答案 0 :(得分:0)
也许我误解了你之后的事情,但听起来像StartDutyDate那么简单的小组,然后是min&最大
希望这有帮助。
里斯
select
cast(StartDutyDateTime as date) as WorkingDay,
min(StartDutyDateTime) as [Min],
max(EndDutyDateTime) as [Max]
from
dbo.MyTable
group by
cast(StartDutyDateTime as date)