当前位置:数据库 > Access >>

【一个access数据库表查询的问题,郁闷小弟一个星期了,大哥们进来看看····急急急】

在一表里面,默认是以id号升序排列,但是里面的id号不是1,2,3,4,5这样的,可能会是这样1,3,5,7这样的, 上一条记录的id号肯定比下一条记录小。 就是说id号不是按照顺序来的。 需要大哥们解决的问题是: 随机得到一个一条记录,怎么算出这条记录在这个表里面是第几条记录?????
补充:s.hh  这个是什么啊?
答案:这个简单定义一个变量就可以了,把你想要得到的记录的ID作为条件来判断,利用变量的递增就可以算出来了!
当然如果知道ID肯定是升序其实还有更简单的就用一条SQL语句就好了:
set rs=server.CreateObject("adodb.recordset")
sql="select * from tb_cp where i_id < 11 order by i_id asc"
rs.open sql,conn,1,3
然后把rs.recordcount输出来就可以了!
有什么不明白的加我HI!
其他:select s.hh from 
(select a.id,count(*) as hh from 表名 as a,表名 as b where b.id<=a.id group by a.id) as s
where id=你要查的ID 


把括号里那堆东西定义成一个结果集叫s,hh是count(*)的别名

这个你需要改动的地方就是“你要查询的ID”和“表名”,其他不用改 s.hh是count(*)起的别名,也可以写成count(*),只不过是嫌名字长而已。
select a.id,count(*) as hh from 表名 as a,表名 as b where b.id<=a.id group by a.id 此语句查的是一个新表 ,你可以执行以下,执行完之后你就明白了怎么从这张表中查你想要的语句了,用到的是sql子查询 这个啊,额,首先确定随即出来的值 k,

//这个是用来确定某条记录的
z=0;
for(int i=0;i<表.count;i++)
{
   if(k==表[i].id)
   {
      z=i;
      return i;
      break;
   }
}
这个z就是你要找的 对应的记录的id 

上一个:在一个Access的多表的数据库,如何替换一个表内字段的值。
下一个:二级Access中,数据库设计是指?(概念)

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,