select * from 表 t
where 时间字段=(select min(时间字段) 
                    from 表 
                        where 姓名=t.姓名 
                        and datediff(day,时间字段,t.时间字段)=0)
      or
      时间字段=(select max(时间字段) 
                    from 表 
                        where 姓名=t.姓名 
                        and datediff(day,时间字段,t.时间字段)=0)

解决方案 »

  1.   

    select min(d),max(d),uid from table1 group by uid
      

  2.   

    我要的是每天的
    select min(d),max(d),uid from table1 group by uid这个只能得到所有的头尾
      

  3.   

    tryselect min(systemdate),max(systemdate),systemdateyyyyMMdd from
    (select systemdate,to_char(t.systemdate,'yyyy-MM-dd') systemdateyyyyMMdd from writeoff t) t group by systemdateyyyyMMdd
      

  4.   

    select min(t) mi,max(t) as ma,uid,dt from table1 group by uid,dt
    uid是刷卡用户id,dt是刷卡所在的天
    这个语句可以按天和人统计每人每天的最早和最晚刷卡时间
      

  5.   

    select min(d),max(d),uid from table1 group by datepart(year,d)+datepart(month,d)+datepart(day,d)