【发布时间】:2020-08-18 12:02:34
【问题描述】:
我有一个函数可以保存多个对象的当前状态并将其写入表中,如下所示:
ObjectId StatusId 日期 1 10 2020-04-04 00:00:00.000 2 10 2020-04-04 00:00:00.000 1 11 2020-04-05 00:00:00.000 2 10 2020-04-05 00:00:00.000 1 10 2020-04-06 00:00:00.000 2 10 2020-04-06 00:00:00.000我想将其设为按 ObjectId 和 StatusId 分组的间隔。 所以对于上面的首选输出应该是这样的:
ObjectId StatusId StartDate EndDate 1 10 2020-04-04 00:00:00.000 2020-04-04 00:00:00.000 1 11 2020-04-05 00:00:00.000 2020-04-05 00:00:00.000 1 10 2020-04-06 00:00:00.000 2020-04-06 00:00:00.000 2 10 2020-04-04 00:00:00.000 2020-04-06 00:00:00.000请注意,一个对象可以在多个场合具有相同的状态,但如果它具有不同的状态,则它需要处于单独的间隔中。如此简单的 group by 和 max(Date) 在我的情况下不起作用。 提前致谢。
【问题讨论】:
标签: sql sql-server date intervals