一个表有如下记录: No MyName MyTime
-----------------------------
1 李四 2011-06-23
2 李四 2011-06-24
3 王五 2011-06-24
4 张三 2011-06-23
5 张三 2011-06-24 标准排序方式为: ORDER BY MyName, MyTime, 因为李(L), 王(W), 张(Z), 所以排序是李、王、张
但是公司要求排序在此基础上还得检查相同名称的取最小时间再排序, 也就是说希望得到的结果如下: No MyName MyTime
-----------------------------
1 李四 2011-06-23
2 李四 2011-06-24
3 张三 2011-06-23 <--- 因为张三的最小时间比王五的最小时间小, 所以得排王五前边
4 张三 2011-06-24
5 王五 2011-06-24我原先的语句是: SELECT * FROM MyTable ORDER BY MyName, MyTime,不符合要求这个排序语句我该怎么写?
-----------------------------
1 李四 2011-06-23
2 李四 2011-06-24
3 王五 2011-06-24
4 张三 2011-06-23
5 张三 2011-06-24 标准排序方式为: ORDER BY MyName, MyTime, 因为李(L), 王(W), 张(Z), 所以排序是李、王、张
但是公司要求排序在此基础上还得检查相同名称的取最小时间再排序, 也就是说希望得到的结果如下: No MyName MyTime
-----------------------------
1 李四 2011-06-23
2 李四 2011-06-24
3 张三 2011-06-23 <--- 因为张三的最小时间比王五的最小时间小, 所以得排王五前边
4 张三 2011-06-24
5 王五 2011-06-24我原先的语句是: SELECT * FROM MyTable ORDER BY MyName, MyTime,不符合要求这个排序语句我该怎么写?
解决方案 »
- 一个表有主id和父级id,如何查询某已知id下的所有相关的子id
- 数据库不能附加。dbcc rebuild_log('aaa','D:\aaa.ldf')出现这样的错误如何解决!!
- 我是刚学SQL的 学生 想请问一个问题
- 请问这两本书的差别
- 简单的新手问题 高手看一眼 那里有错啊
- 分组统计问题
- 如何统计'aa/bb/cc/dd/ee'中 / 的个数?
- 查询没结果,请帮帮忙啊!!!!!
- 请问DAT文件是怎么回事?我想从一个应用软件的.dat文件提取数据,该如何做?
- 为什么有些存储过程不能调试呢?
- SQL Server 2005 完整性检查执行失败!!!
- ===============求一句sql,判断一个字段===========
1 张三 2011-06-22 <--- 因为张三的最小时间比李四的最小时间小, 所以得排李四前边
2 张三 2011-06-24
3 李四 2011-06-23
4 李四 2011-06-24
5 王五 2011-06-24如果按楼上的 order by myname,min(mytime), 得到的结果是: 1 李四 2011-06-23
2 李四 2011-06-24
3 王五 2011-06-24
4 张三 2011-06-22 <--- 这个最小时间没排在最前边, 因为第一排序MyName限制了它
5 张三 2011-06-24 而如果按 order by min(mytime), myname, 得到的结果又是:
1 张三 2011-06-22 <--- 虽最小时间排在最前边, 但也不符合经理要求的同名人按最小时间排最前的要求
2 李四 2011-06-23 |
3 李四 2011-06-24 |
4 王五 2011-06-24 |
5 张三 2011-06-24 <-----
go
insert into tb select '张三' ,'2011-06-22' --- 因为张三的最小时间比李四的最小时间小, 所以得排李四前边
insert into tb select '张三', '2011-06-24'
insert into tb select '李四' ,'2011-06-23'
insert into tb select '李四' ,'2011-06-24'
insert into tb select '王五', '2011-06-24'goselect a.name, a.rq from
tb a, (select name, min(rq) as rq from tb group by name) b
where a.name = b.name
order by b.rq, a.name