我要把access数据库里一个表,读取前100条,这100条再分类显示出来怎么做??

表:
di 分类
1 aa
2 bb
3 aa
4 cc
5 aa
读取前100个id,再分类显示出来:
显示表格一、分类aa的id:1 3 5 ...
显示表格二、分类bb的id:2 ...
……
这些分类加起来id数不超过100条,该怎么做??知道的朋友教教我谢谢!~

SQL语句是:select 分类,ID from (select top 100 ID, 分类 from 表 where 条件筛选表达式 order by ID asc) as 新表 order by 分类 asc,ID asc

这个是按顺序把表格一和表格二等表格合并为一个表格。也就是一个结果集。

如果是要把表格一和表格二等表格分开显示的话,也就是多个结果集的话。将程序代码分两步做。
第一步:执行SQL语句将表格数量求出,也就是分类的值的不重复总数:
select count(分类) as 总数字段名 from (select distinct 分类 from (select top 100 ID, 分类 from 表 where 条件筛选表达式 order by ID asc) as 新表 ) as 新表2

第二步:按这个总数值作为循环次数循环执行SQL语句。得到各个结果集也就是显示表格:
for i:=1 to 总数 do
begin
...
执行SQL语句:select 分类,ID from (select top 100 ID, 分类 from 表 where 条件筛选表达式 order by ID asc) where 分类= (select top 1 分类 from (select top :i 分类 from (select distinct 分类 from (select top 100 ID, 分类 from 表 where 条件筛选表达式 order by ID asc) as 新表 order by 分类 asc) order by 分类 asc) as 新表2 order by 分类 desc) order by ID asc

注意:其中的短语:“select top :i 分类”中的:i表示i是循环变量。从1到总数。这样能按分类的顺序读取各个分类的结果集。并显示到表格中。
...
end;追问

非常感谢!由于分类是很多的
可不可以这样理解:
先在表100行里 找出满足分类条件的行数
(例如100条里有30条满足aa的,那么我就select top 30* from 表 where 分类 ="aa"...)
得到表一 select top 满足aa的行数 * from 表 where 分类 ="aa"……
得到表二 select top 满足bb的行数 * from 表 where 分类="bb"……
得到表三 select top 满足cc的行数 * from 表 where 分类="cc"……

温馨提示:答案为网友推荐,仅供参考
相似回答