【发布时间】:2011-10-03 16:37:31
【问题描述】:
我有一个不同资产的开/关事件表。我需要在不使用光标的情况下获取开始和停止事件时间的列表。
来源:
Item EventDate Event
A 2011-10-03 00:01:00 On
B 2011-10-03 00:01:00 On
A 2011-10-03 00:02:00 Off
C 2011-10-03 00:01:00 On
B 2011-10-03 00:02:00 Off
A 2011-10-03 00:02:02 On
C 2011-10-03 00:02:05 On
A 2011-10-03 00:02:07 Off
想要的结果:
Item Start End
A 2011-10-03 00:01:00 2011-10-03 00:02:00
A 2011-10-03 00:02:02 2011-10-03 00:02:07
B 2011-10-03 00:01:00 2011-10-03 00:01:00
C 2011-10-03 00:01:00 2011-10-03 00:02:05
【问题讨论】:
-
您会曾经在某个项目中使用重叠的时段吗?
-
尝试了子查询和 cte,但运气不佳。这应该很简单。我真的想把它保存在服务器上。
-
这里几乎解决了同样的问题stackoverflow.com/questions/6898289/…
-
通过一点点操作,您可以使用聚合函数最小值和最大值,就像我在手术中所做的那样(我使用了 @Adrian 的数据)
标签: sql sql-server tsql