首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Access >

求一排序显示语句解决方法

2012-02-09 
求一排序显示语句例表:TIDNameDa1aaaa22aaaa33aaaa44bbbb55bbbb66cccc77cccc128dddd89dddd10想要的结果:7c

求一排序显示语句
例表:T
ID       Name       Da
1         aaaa       2
2         aaaa       3
3         aaaa       4
4         bbbb       5
5         bbbb       6
6         cccc       7
7         cccc       12
8         dddd       8
9         dddd       10

想要的结果:
7         cccc       12
9         dddd       10
5         bbbb       6
3         aaaa       4
8         dddd       8
6         cccc       7
5         bbbb       5
2         aaaa       3
1         aaaa       2



[解决办法]
不好做,
select * from (
SELECT *,1 as cs from tt5 a where da=
(select top 1 da from tt5 where name=a.name order by da desc) )
UNION select * from (
SELECT *,2 as cs from tt5 a where da=
(select top 1 da from tt5 where name=a.name order by da asc))
union
select * from (
select a.*,3 as cs from tt5 a left join (
SELECT name,max(da) as ma,min(da) as mi from tt5 group by name) b
on (a.name=b.name) where (a.da> mi) and (a.da <ma))
ORDER BY cs, da DESC

如果同一NAME中有N个数的话,SQL语句会很长,上述示例在同一NAME中,只有
3个数。
[解决办法]
以下語句在ACCESS中測試OK

Select ID, Name, Da
From (Select *, (Select Count(*) From T3 Where Name = A.Name And Da > = A.Da) As OrderID From T3 A) B
Order By OrderID, Da Desc

热点排行