一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请高手指点下,谢谢
表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请高手指点下,谢谢
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 行)
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
*/
on(A.姓名=B.姓名)
order by B.开始时间,a.开始时间
这个通俗易懂