select 计算机名,max(创建日期) from tb  group by 计算机名

解决方案 »

  1.   

    select * from tb as  t where not exists(select 1 from tb where 计算机名=t.计算机名 and 创建日期>t.创建日期)
      

  2.   


    -- SQL Server 2005 以上用分析函数:
    select * from (
    select * , 
    ROW_NUMBER() over(partition by 计算机名 order by 日期 desc ) as rn 
     from mytable 
     ) x 
     where rn = 1 
      

  3.   

    你好,我发现再多个字段就不好处理了。烦请再看看这个表格:
    计算机名 MAC地址 创建日期
    A_A 00:00:00:00:00:01 2014/8/4 7:58
    B 00:00:00:00:00:02 2014/8/4 0:00
    C 00:00:00:00:00:03 2014/8/3 0:00
    B_B 00:00:00:00:00:02 2014/8/3 0:00
    A 00:00:00:00:00:01 2014/8/2 14:03
    C 00:00:00:00:00:03 2014/8/2 14:03
    B 00:00:00:00:00:02 2014/8/2 14:03
    计算机名会变,MAC地址假定不变,按MAC分组取日期最近的所有字段数据!谢谢
      

  4.   

    补充:
    要得到
    计算机名 MAC地址 创建日期
    A_A 00:00:00:00:00:01 2014/8/4 7:58
    B 00:00:00:00:00:02 2014/8/4 0:00
    C 00:00:00:00:00:03 2014/8/3 0:00