假设有tb_login 表,tb_login 有name和logindate,name为登陆者的名字, logindate为登陆的时间(每个用户登陆一次,记录一次),现在要做的是查询出当天有登陆记录的人的第一次登陆记录面试题mssqlaccess数据库记录

解决方案 »

  1.   

    select * 
    from tb_login t
    where logindate >=   curdate() 
    and not  exists (select 1 from tb_login where name=t.name   and logindate>= curdate() and logindate<t.logindate)
      

  2.   

    如果就name和logindate两个字段的话 可以
    select name,min(logindate)
    from tb
    where logindate >=   curdate() 
    group by name
      

  3.   

    我怎么感觉都不太对啊
    select name,min(logindate)
    from tb_login
    where logindate=currendate()
    group by name;
    select currendate();
    2013-07-16
    我怎么感觉都不太对啊
    select name,min(logindate)
    from tb_login
    where logindate=currendate()
    group by name;
    select currendate();
    2013-07-16
      

  4.   

    select * from tb_login where logindate in(
    select min(logindate) from tb_login group by name,logindate );
    这是查询每个人每天的初次登陆
      

  5.   

    只是 一张表,这种取  分组取最大最小,用  max  和 min 函数还是比较好的 select  curdate()是取当前日期。结果如:2013-07-26
    select  now()是取现在具体时间。结果如:2013-07-26  11:11:27
    select name,min(logindate) from tb_login where logindate >= curdate() group by name
    order  by  logindate。
      

  6.   

    SELECT count(*) AS count, 
    name, 
    unix_timestamp(logindate)
    FROM login
    GROUP BY name 
    HAVING
    min(unix_timestamp(logindate)) > unix_timestamp(CURdate());