日期:2014-05-17 浏览次数:20620 次
--首先明确一下,假设你的表有自动加1的ID字段;
--其次,每次登陆,都能正常退出;登陆一次就添加一次数据;
--第二次登陆的表ID大于第一次登陆的ID;
--第N次的退出时间 小于 第N+1次的登陆时间;
--只需要查询退出时间在你的时间段内就可以了。
--1、先查询 符合时间段的数据
declare @tableid int --假设一个tableid
declare @status int --假设status=0 则为离线状态
;with cte_a(
select * from [t_record] where ([loginTime] between [startTime] and [endTime] and [tableid]=@tableid and [status]=@status)
)
--分类取最后一条记录
,cte_b as(
select max(ID) ID,用户ID from cte_a
group by 用户ID
)
--最终查询
select * from [t_record] where ID in (select ID from cte_b)
---这样写比较明了了,
---