一SQL语句,
表table1,字段(姓名,时间),要实现的结果是,姓名一样的放在一起,但时间必须以姓名
对应的第一个时间排序显示(不同的姓名的时间以姓名对应的第一个时间先后顺序,
同一个姓名也按照时间先后显示)。请问怎么实现啊,谢谢
数据为
 姓名        开始时间  
 张三   2006-05-01 20:08:06.000
 张三   2006-05-02 20:08:06.000
 李四   2006-05-03 20:08:06.000
 张三   2006-05-04 20:08:06.000
 李四   2006-05-05 20:08:06.000
 李四   2006-05-06 20:08:06.000
 王五   2006-05-07 20:08:06.000
 李四   2006-05-08 20:08:06.000要得到的结果是
 姓名        开始时间  
 张三   2006-05-01 20:08:06.000
 张三   2006-05-02 20:08:06.000
 张三   2006-05-04 20:08:06.000
 李四   2006-05-03 20:08:06.000
 李四   2006-05-05 20:08:06.000
 李四   2006-05-06 20:08:06.000
 李四   2006-05-08 20:08:06.000
 王五   2006-05-07 20:08:06.000请高手指点下,谢谢

解决方案 »

  1.   

    Select * from table1 Order By  姓名,开始时间??
      

  2.   

    呵呵,不就是一个order by吗
      

  3.   

    create  table table1( 姓名 varchar(20), 时间 datetime)
    insert into table1 select 
    '张三', '2006-05-01 20:08:06.000' union select 
    '张三', '2006-05-02 20:08:06.000' union select 
    '李四', '2006-05-03 20:08:06.000' union select 
    '张三', '2006-05-04 20:08:06.000' union select 
    '李四', '2006-05-05 20:08:06.000' union select 
    '李四', '2006-05-06 20:08:06.000' union select 
    '王五', '2006-05-07 20:08:06.000' union select 
    '李四', '2006-05-08 20:08:06.000'select b.姓名,a.时间
    from table1 a,(select 姓名,min(时间) as 时间 from table1 group by 姓名) b
    where a.姓名=b.姓名
    order by b.时间,a.时间姓名                   时间                                                     
    -------------------- ------------------------------------------------------ 
    张三                   2006-05-01 20:08:06.000
    张三                   2006-05-02 20:08:06.000
    张三                   2006-05-04 20:08:06.000
    李四                   2006-05-03 20:08:06.000
    李四                   2006-05-05 20:08:06.000
    李四                   2006-05-06 20:08:06.000
    李四                   2006-05-08 20:08:06.000
    王五                   2006-05-07 20:08:06.000(所影响的行数为 8 行)
      

  4.   

    create  table table1( 姓名 Nvarchar(20), 开始时间 datetime)
    insert into table1 select 
    N'张三', '2006-05-01 20:08:06.000' union select 
    N'张三', '2006-05-02 20:08:06.000' union select 
    N'李四', '2006-05-03 20:08:06.000' union select 
    N'张三', '2006-05-04 20:08:06.000' union select 
    N'李四', '2006-05-05 20:08:06.000' union select 
    N'李四', '2006-05-06 20:08:06.000' union select 
    N'王五', '2006-05-07 20:08:06.000' union select 
    N'李四', '2006-05-08 20:08:06.000'Select * from table1 A Order By  (Select Min(开始时间) from table1 Where 姓名=A.姓名),开始时间Drop Table table1
    --結果
    /*
    姓名 开始时间
    张三 2006-05-01 20:08:06.000
    张三 2006-05-02 20:08:06.000
    张三 2006-05-04 20:08:06.000
    李四 2006-05-03 20:08:06.000
    李四 2006-05-05 20:08:06.000
    李四 2006-05-06 20:08:06.000
    李四 2006-05-08 20:08:06.000
    王五 2006-05-07 20:08:06.000
    */
      

  5.   

    Select A.* from table1 A inner join  (Select Min(开始时间) as 开始时间,姓名  from table1 group by 姓名) as B
    on(A.姓名=B.姓名)
    order by B.开始时间,a.开始时间 
    这个通俗易懂