ステータス条件を使用して 2 つの日付の違いを見つけるクエリが必要です。
次のような私のテーブルデータ:
select
ROW_NUMBER() OVER (ORDER BY eventtime) as id,
Eventcode, eventtime, status
from cfw.dbo.DCTBLEVENTINFO
where
MeterID = 4722
and EventTime >= '2011-10-21' and EventCode = 13
データ:
id Eventcode eventtime status
1 13 2011-10-21 21:42:00.000 1
2 13 2011-10-21 22:02:24.107 0
3 13 2011-10-22 09:45:00.000 1
4 13 2011-10-22 10:05:24.107 0
5 13 2011-10-22 15:08:00.000 0
6 13 2011-10-22 16:33:00.000 1
7 13 2011-10-22 16:44:00.000 0
8 13 2011-10-22 16:53:24.107 0
9 13 2011-10-23 08:52:00.000 1
10 13 2011-10-23 09:12:24.107 0
11 13 2011-10-23 10:18:00.000 0
12 13 2011-10-23 10:35:00.000 1
13 13 2011-10-23 10:36:00.000 0
14 13 2011-10-23 10:55:24.107 0
15 13 2011-10-23 10:56:00.000 1
16 13 2011-10-23 11:01:00.000 0
17 13 2011-10-23 11:16:24.107 0
18 13 2011-10-23 18:28:00.000 1
19 13 2011-10-23 18:30:00.000 0
このステータス列 の1は を参照しoccurencetime
、0は を参照しrestorationtime
ます。最初の発生時間と次の対応する復元時間の差を取り、次の発生時間を取る必要があります
例えば
2011 年 10 月 22日の時点で、全部で 5occurencetime
件のエントリがあり2011-10-22 09:45:00.000
ます。次のエントリには、そのエントリを離れて次の 1 & 0 エントリを検索する必要があります。それから違いを作ります。restoration time
2011-10-22 10:05:24.107
restorationtime alone(status 0)
次のような私の最終的な結果セット:
Eventcode occurencetime restorationtime difference (sec)
13 2011-10-21 21:42:00.000 2011-10-21 22:02:24.107 1224
13 2011-10-22 09:45:00.000 2011-10-22 10:05:24.107 1224
13 2011-10-22 16:33:00.000 2011-10-22 16:44:00.000 660
私がそれをするのを手伝ってください。