这在SQL命令中是否可行。
TABLE
ID|USERID|TIMESTAMP |ACTION|
1 |USER1 |8/23/2013 3:25:10 PM|LOGOUT|
2 |USER1 |8/23/2013 3:15:10 PM|LOGIN |
3 |USER1 |8/23/2013 1:25:10 PM|LOGIN |
4 |USER2 |8/23/2013 9:25:10 AM|LOGOUT|
5 |USER2 |8/23/2013 8:25:10 AM|LOGIN |
结果:
USERID|TIMESTAMP LOGIN |TIMESTAMP LOGOUT
USER1 |8/23/2013 3:15:10 PM|8/23/2013 3:25:10 PM
USER1 |8/23/2013 1:25:10 PM|
USER2 |8/23/2013 8:25:10 AM|8/23/2013 9:25:10 AM
基本上我需要获取用户的登录日期和时间。有些情况下,由于用户单击x按钮而没有单击注销按钮,因此没有注销条目。
谢谢, RYL
答案 0 :(得分:0)
我猜你在MySQL移除TOP 1
并将LIMIT 1
添加到子查询末尾时使用MS SQL服务器:
select ID,USERID,TIMESTAMP as LOGIN_TIME,
(SELECT TOP 1
CASE WHEN ACTION='LOGOUT'
THEN TIMESTAMP
ELSE NULL
END
FROM T
WHERE USERID=T1.USERID
AND
TIMESTAMP>T1.TIMESTAMP
ORDER BY TIMESTAMP
) AS LOGOUT_TIME
from T AS T1
WHERE ACTION='LOGIN'
ORDER BY ID