I need a query to find the difference between two dates with the status condition,
My table data as like this:
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
Data:
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
In this status column 1 refers the occurencetime, 0 refers the restorationtime. I have to take the difference between the first occurencetime and the next corresponding restoration time then take the next occurencetime
for ex
For the date of 2011-10-22 totally 5 entries are there I have to take the occurencetime as 2011-10-22 09:45:00.000 and restoration time as 2011-10-22 10:05:24.107 and make a difference. next entry have the restorationtime alone(status 0) i have to leave that entry and search for next 1 & 0 entry. then make the difference.
My final resultset as like this:
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
Help me to do that.
try this: