从记录属性的现有表在SQL Server中构建伪日志表
我有一张桌子,看起来像:从记录属性的现有表在SQL Server中构建伪日志表,sql,sql-server,date,logging,Sql,Sql Server,Date,Logging,我有一张桌子,看起来像: 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
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
其中,ID表示和项than处于状态X或不处于状态X
EnterStatus和LeaveStatus字段是日期时间,用于标记此项目是否发生了导致其处于状态X的事件
例如,对于ID1
- 2017年1月1日,事件ID ABC43发生,导致ID1进入状态X
- 2017年1月3日,事件ID F2C72发生,本来会将其ID1置于状态X,但它已经处于状态X,因为ABC43没有 还没有结束
- 2017年1月5日,eventID ABC43结束,但ID1未离开状态X,因为eventID F2C72尚未结束李>
- 2017年1月6日,DBC42事件发生,这将使ID1进入状态X,但它已经处于状态X,因为F2C72尚未结束 然而
- 2017年2月2日,F2C72和DBC42均结束,因此ID1离开状态X
ID EnterStatus LeaveStatus InStatusX
1 2017-01-01 2017-02-02 True
1 2017-02-02 NULL False
2 2017-01-03 2015-01-05 True
2 2017-01-05 2015-01-07 False
2 2017-01-07 NULL True
关于查询我的表以返回这种新格式的最佳方法,有什么建议吗?我很难理解这个问题。你能解释清楚吗?更新了,希望对你有所帮助!