求帮写一个sql语句!!

来源:百度知道 编辑:UC知道 时间:2024/09/25 01:19:23
我在access里有一个表如下

时间 | 项目 | 项目的计数
2009/07/09 15:00:00 | A | 1
2009/07/09 15:00:00 | B | 24
2009/07/09 15:00:00 | C | 13

想求一个sql语句,可以将同一时间中的项目按计数值排列在一行里,如下:

时间 | 项目计数值最大的项目 | 项目的计数|项目计数值其次的项目|项目的计数|项目计数值再次的项目|
2009/07/09 15:00:00 | B | 24| C | 13 | A | 1

万望帮忙!!
非常感谢楼下的回答,但这个只能把项目的个数按项目名列出来,不能按项目个数的大小排序。
我有一个语句能选出每个时间项目个数最大值对应的项目,但不能列出第二多和第三多的项目,诸位可否遵循下面语句的思路,把第二多和第三多的项目列出来?
语句如下
SELECT a.*
FROM table AS a INNER JOIN [SELECT 时间, max(项目之计数) AS 项目 FROM table GROUP BY 时间]. AS b ON (a.项目之计数=b.项目) AND (a.时间=b.时间);
to chenkaka0578:请问您能给我一个access能用的sql语句么?多谢!!
其他诸位可以在测试通过之后再贴上来么?谢谢!!

SQL2005测试结果:
表 xm
tm names geshu
2009-07-12 12:00:00.000 A 20
2009-07-12 12:00:00.000 B 50
2009-07-12 12:00:00.000 C 10
2009-07-13 12:00:00.000 A 60
2009-07-13 12:00:00.000 B 80
2009-07-13 12:00:00.000 C 90

select table_a.*,table_b.names,table_b.geshu,table_c.names,table_c.geshu
from

(SELECT a.*
FROM xm AS a
INNER JOIN
(SELECT tm, max(geshu) AS 'shuliang' FROM xm GROUP BY tm) AS b
ON (a.geshu=b.shuliang) AND (a.tm=b.tm)) as table_a,

(SELECT a.*
FROM xm AS a ,
(SELECT tm, max(geshu) AS 'shuliang' FROM xm GROUP BY tm) AS b ,
(select tm,min(geshu) as 'shuliang' from xm group by tm) as c
where a.tm=b.tm and a.tm=c.tm and a.geshu!=b.shuliang and a.geshu!=c.shuliang)as table_b,

(SELECT a.*
FROM xm AS a
INNER JOIN
(select tm,min(g