在记录属性的现有表中构建SQL Server中的伪日志表

时间:2017-01-10 23:43:04

标签: sql sql-server date logging

我有一张表格如下:

six.PY3

其中ID表示和项目的状态为X或状态X中的​​项目。

EnterStatus和LeaveStatus字段是日期时间,用于标记此项目是否发生了导致其处于状态X的内容。

例如,对于ID1,

  • 在2017-01-01发生了eventID ABC43,导致ID1进入状态X.
  • 在2017-01-03 eventID F2C72发生了,它会将ID1置于状态X,但它已经处于状态X,因为ABC43没有 结束了。
  • 在2017-01-05,eventID ABC43结束,但ID1没有离开状态X,因为eventID F2C72尚未结束。
  • 在2017-01-06事件DBC42发生时,这会将ID1置于状态X,但它已经处于状态X,因为F2C72尚未结束 爱好。
  • 在2017-02-02上,F2C72和DBC42都已结束,因此ID1离开了状态X。

我想要的是一个表,它确定每个ID1的回报,无论状态是否处于状态X。 X

所以看起来像

ID1     EventID    EnterStatus   LeaveStatus
1       ABC43      2017-01-01    2017-01-05
1       F2C72      2017-01-03    2017-02-02
1       DBC42      2017-01-06    2017-02-02
2       96FUD      2017-01-03    2015-01-05
2       85YDZ      2017-01-07    NULL

有关查询表格以返回此新格式的最佳方法的建议吗?

0 个答案:

没有答案