简化的结构。SQL - 基于另一列的开始和结束日期
我需要一个有4动作类型和1
动作类型的记录可能是在该州多次,我需要他们的时候
单独行的记录之间的两个日期例如,对于IncidentId = 1
- 行1 - 开始时间= 2017年1月1日14点(ID:3) - 结束时间= 2017年1月1日20点(ID:5)
- 第2行 - StartTime = 2017-01-01 21:00(id:6) - End Time = 2017- 01-02 11:00(ID:9)
CREATE TABLE #returntable ( [incidentid] INT, [starttime] DATETIME, [endtime] DATETIME ) CREATE TABLE #testtableofdoom ( [incidentlogid] INT, [incidentid] INT, [timestamp] DATETIME, [actiontypeid] INT ) INSERT INTO #testtableofdoom (incidentlogid, incidentid, timestamp, actiontypeid) VALUES (1, 1, '2017-01-01 09:00', 1) , (2, 1, '2017-01-01 11:00', 1) , (3, 1, '2017-01-01 14:00', 4) , (4, 1, '2017-01-01 16:00', 4) , (5, 1, '2017-01-01 20:00', 1) , (6, 1, '2017-01-01 21:00', 4) , (7, 1, '2017-01-02 09:00', 4) , (8, 2, '2017-01-02 10:00', 1) , (9, 1, '2017-01-02 11:00', 1) , (10, 1, '2017-01-02 14:00', 1) , (11, 2, '2017-01-02 15:00', 4) , (12, 1, '2017-01-02 16:00', 1) , (13, 1, '2017-01-02 17:00', 1) , (14, 1, '2017-01-02 18:00', 1) , (15, 2, '2017-01-02 15:00', 1); DROP TABLE #testtableofdoom DROP TABLE #returntable
你怎么知道哪个'StartTime'(4)与哪个'EndTime'(1)一致?例如:IncidentLogID的#6和#7都表示'IncidentID'#1的开始。你怎么知道'IncidentLogID'#8是否与#6或#7配对? – 3BK
这就是数据格式化的方式。当事件处于OnHold状态时,它保持ActionTypeId为4.它保持这样,直到它不再被保留,但其他字段可以在没有4变化的情况下改变。中间记录(例如行号7)可以在返回值时忽略。 – Kieran