数据表:
create table userLoginLog(
username nvarchar(50) not null,
loginDatetime datetime not null,
logoutDatetime datetime null
) 用户登入时会 insert userLoginLog(username, loginDatetime) values('username', GETDATE())当用户退出是, 我想update该用户loginDatetime离当前最近的一条数据logoutDatetime.不知道sql如何写? 谢谢!!!

解决方案 »

  1.   

    select username,max(loginDatetime) from tb group by username
      

  2.   

    update ...... where loginDatetime=(select max(..) from ... where 用户=)
      

  3.   

    update userLoginLog set logoutDatetime=getdate() where loginDatetime=(select max(loginDatetime) from userLoginLog where 用户='...')
    可以用触发器吧
      

  4.   

    楼上update userLoginLog set logoutDatetime=getdate() where loginDatetime=(select max(loginDatetime) from userLoginLog where 用户='...')
    ---------------------------------------------------------------------------------如果两个用户有同样的loginDatetime, 上面的sql不是将他们都update了吗?
      

  5.   

    update userLoginLog set logoutDatetime=getdate()
    where username='username' and 
    loginDatetime=(select max(loginDatetime) from userLoginLog where username='username')