急!ASP+access多条件查询

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:58:34
数据库里有上千条新闻
我想对最新的100条新闻进行点击数(count)排行,排出TOP10,该怎么实现呢?我用了子查询来实现,但是出了点问题,不知是BUG还是什么。。高手来看看吧

sql="select top 10 title,url,tag,id from news where id in (select top 100 id from news order by id desc) order by count desc"
问题是:top 10会把100条记录全显示出来,但是我改成top1和top2就正常,只要大于top 3就全部显示,这是不是BUG啊?感觉理论上应该是可以实现的啊
你没看清楚我的问题,我是要对最新的100条新闻做排行,并不是对所有新闻排行。我就是先用子查询先取出最新的100条新闻

我可以告诉你问题的原因!原因就是你的count值不全是唯一的(也就是说点击量有相同的),所以造成这个问题,算是access的一个bug吧!你可以改称这样试下!
sql="select top 10 title,url,tag,id from news where id in (select top 100 id from news order by id desc) order by count desc,id desc"

另外楼上的查询语句不满足楼主的要求!按着你的查询条件,是先排出浏览量追高的10条,然后在按着id的顺序排序输出,如果数据库够久,浏览量够大,按着这种查询,永远都得不到最新的,永远是输出浏览量最高的那10条

sql="select top 10 title,url,tag,id from news order by count desc,id desc" 我就想不起你为什么这样用?本来这样一句就能实现的!为什么偏要这样用呢?你的想法也只是应该,但在语句的使用上要尽量短,所以这样的使用不多,谓词在使用时应该是子查询比较小的范围,大范围不妨试一个= any (子查询)的方式。尽量使用运算,避免使用谓词。