我正在使用SQL Server 2008,如何計算開啓和關閉狀態之間的時間?我有以下表(由timestamp
訂購):計算開啓和關閉狀態行之間的時間SQL Server
ID | EQUIP_ID | TIMESTAMP | STATUS (1 on/0 off)
1 | 1 | 21/05/2012 13:00:00 | 1
3 | 1 | 21/05/2012 13:04:00 | 1
4 | 1 | 21/05/2012 13:05:00 | 0
6 | 1 | 21/05/2012 13:09:00 | 1
7 | 1 | 21/05/2012 13:10:00 | 1
9 | 1 | 21/05/2012 13:12:00 | 1
10 | 1 | 21/05/2012 13:13:00 | 0
10 | 1 | 21/05/2012 13:14:00 | 1
10 | 1 | 21/05/2012 13:15:00 | 0
我期待這樣的結果:
EQUIP_ID | START | END | STATUS
1 | 21/05/2012 13:00:00 | 21/05/2012 13:05:00 | 1 (WORKING)
1 | 21/05/2012 13:05:00 | 21/05/2012 13:09:00 | 0 (STOPPED)
1 | 21/05/2012 13:09:00 | 21/05/2012 13:13:00 | 1
1 | 21/05/2012 13:13:00 | 21/05/2012 13:14:00 | 0
1 | 21/05/2012 13:14:00 | 21/05/2012 13:15:00 | 1
我已經試過了差距和島嶼的一些功能,但沒有工作,我不知道我失蹤了什麼...
也許這個例子可以讓你開始:http://stackoverflow.com/questions/4738587/select-rows-where-price-didnt-change – 2012-07-27 18:57:31
使用這個例子i'm不能得到正確的間隔前:第一工作行將返回結束時間13:04不是13:05 ... – wesley 2012-07-27 19:03:30