数据量比较大,想实现结果:张三 2011-6-18 .....(后面字段省略)
李四 2011-6-18 .....
小五 2011-6-17 .....张三 2011-6-17 .....
李四 2011-6-17 .....
小五 2011-6-16 ........
...
...对于group by有点郁闷,因为字段很多,难道要全部都弄出来。不是特别懂。求救!!急呢,如果再弄不出,我就要滚蛋了

解决方案 »

  1.   

    你试试这个sql,不行的话,把结果贴贴出来.
    select * from datable 
    group by 时间字段
    order by 时间字段 desc
    只要不在group by后的字段查询出来的字段要有聚合函数如max(字段名)
      

  2.   

    你可以再试试这个sql,不行的话,把结果贴贴出来.
    select * from datable  
    group by 时间字段,名字字段
    order by 时间字段 desc
    只要不在group by后的字段查询出来的字段要有聚合函数如max(字段名)
      

  3.   

    你这样子好像是不行的,报错。
    选择列表中的列 'id' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
      

  4.   

    不好控制吧,除非你每一轮的用户的时间都比下一轮的时间要大你就可以用 时间Desc + 姓名来进行控件,要不最多只能够控制一次
      

  5.   


    select * from datatable order by 姓名,日期 desc这样?
      

  6.   

    如果要分页的话就这样select top([pagesize]) * from datatable where 日期 not in 
    (select top ([pageindex]*[pagesize]) rdate from datatable order by 姓名,日期 desc) order by 姓名,日期 desc数据量大的话可以给表按这个排序建个索引。
      

  7.   


    是的,group的话,全部都会归为一组,还真是摸不着头脑了
      

  8.   

    CREATE TABLE tbtmp([name] VARCHAR(10),[time] VARCHAR(40))
    INSERT dbo.tbtmp
    SELECT '张三', '2011-6-18 00:00:01.....' UNION ALL
    SELECT '张三', '2011-6-18 00:00:02   ' UNION ALL
    SELECT '李四', '2011-6-18 00:00:20.....' UNION ALL
    SELECT '李四', '2011-6-18 00:00:40.....' UNION ALL
    SELECT '小五', '2011-6-18 00:02:20.....' UNION ALL
    SELECT '小五', '2011-6-18 00:04:20.....' UNION ALL
    SELECT '张三', '2011-6-17 00:00:01.....' UNION ALL
    SELECT '张三', '2011-6-17 00:00:02   ' UNION ALL
    SELECT '李四', '2011-6-17 00:00:20.....' UNION ALL
    SELECT '李四', '2011-6-17 00:00:40.....' UNION ALL
    SELECT '小五', '2011-6-17 00:02:20.....' UNION ALL
    SELECT '小五', '2011-6-17 00:04:20.....'SELECT  a.[name] ,
            LEFT(a.[time], 9) AS [time]
    FROM    dbo.tbtmp a
    WHERE   NOT EXISTS ( SELECT 1
                         FROM   dbo.tbtmp
                         WHERE  [name] = a.[name]
                                AND LEFT([time], 9) = LEFT(a.[time], 9)
                                AND LEFT([time], 18) > LEFT(a.[time], 18) )DROP TABLE dbo.tbtmp
    /*
    name       time
    ---------- ------------------
    张三         2011-6-18
    李四         2011-6-18
    小五         2011-6-18
    张三         2011-6-17
    李四         2011-6-17
    小五         2011-6-17(6 行受影响)
    */
      

  9.   

    没有用到聚合函数的字段你都可以写到group by后面去,反正group by分组会按你考前的字段为主的如:
    select * from datable
    group by 时间字段,名字字段,id字段,。
    order by 时间字段 desc