2008年MSSQL我有表和数据,看起来像这样TSQL问题来计算一个表中两个日期之间的差异
create table #tempData
(user_id int,type varchar(10),ts datetime)
insert into #tempData
select 1,'ENTER','2011-01-30 15:00:00'
union all
select 1,'EXIT','2011-01-31 16:00:00'
union all
select 1,'ENTER','2011-02-1 18:00:00'
union all
select 1,'EXIT','2011-02-10 21:00:00'
union all
select 2,'ENTER','2011-01-10 21:00:00'
union all
select 2,'EXIT','2011-01-12 21:00:00'
union all
select 2,'ENTER','2011-01-13 01:00:00'
union all
select 2,'EXIT','2011-01-13 18:00:00'
--AND SO ON --
现在我努力使查询这是要告诉一个用户多么漫长的时间内根据上次退出
像
user_id,exited,time_in_hours
1,'2011-01-31 16:00:00',25
1,'2011-02-10 21:00:00',219
2,'2011-01-12 21:00:00',48
2,'2011-01-13 18:00:00',17
很抱歉,如果这个坏或ROUGE问题,如果这是不是要问这样的问题,正确的方法。 但我在此堆叠了一会儿。
应该发生什么如果用户进入但不退出并继续执行以下步骤。什么是假设 –
应该有一些像SessionId一样在ENTER-EXIT条目之间建立关系。否则这将是一个混乱(和错误!)建立这样的对 - 只是按照行ID增量原则 – sll
同一个用户的会话可以相交吗? –