MSSQL count le time total entre plusieurs inputs et exitis

Je voudrais vous requestr de l'aide sur la façon de countr le time total passé entre plusieurs inputs et sorties. La table d'exemple ressemble à ceci (pour un user):

Date_Time | Event | User ------------------------|--------------|--------- 2016-08-01 09:19:11.000 | Reader entry | John D. 2016-08-01 10:00:56.997 | Reader exit | John D. 2016-08-01 10:09:24.000 | Reader entry | John D. 2016-08-01 11:14:12.000 | Reader exit | John D. 2016-08-01 12:41:15.997 | Reader entry | John D. 2016-08-01 12:45:28.000 | Reader exit | John D. 2016-08-01 12:47:23.000 | Reader entry | John D. 2016-08-01 13:37:06.997 | Reader exit | John D. 2016-08-01 13:38:54.997 | Reader entry | John D. 2016-08-01 13:43:01.000 | Reader exit | John D. 

Je voudrais countr le time total passé de l'input à la sortie dans un jour donné pour une personne donnée. Dans l'exemple ci-dessus, pour John D., ce sera au total 02:40:30.

J'utilise MSSQL 2012.

Merci pour votre aide à l'avance, Pawel

J'utiliserais la fonction de window LAG

  select [user], sum(datediff(s,prev_date_time,date_time)) as seconds from (select [user], date_time, Event, lag(Date_time) over (partition by [user] order by Date_time) as prev_date_time, lag(Event) over (partition by [user] order by Date_time) as prev_event from myTable) as t where Event = 'Reader exit' and prev_event = 'Reader entry' group by [user]; 

SORTIE

 user seconds John D. 9876 

C'est en fait 2:44:36, je ne sais pas comment vous avez eu 02:40:30.