access中使用select语句出现记录重复的问题懂的朋友解决下~~~~~~~~~~~~

zjzb0409 2008-08-04 01:51:06
代码
<%set rs=server.CreateObject("adodb.recordset")
rs.open "select top 4 cpid,cpname,cppic from cptable order by cpclick desc",conn,1,1%>

使用查询 按产品的点击次数降序排列 目的是 产品里点击次数 最高的4个产品显示出来 但是现在老是出现5条记录 因为第4条和第5条的点击次数是一样的 所以出现重复的问题了。

如何解决重复记录的问题呢 重复的 我也只想显示一条就行了。我使用了distinct 但是没效果 总是达不到希望的结果。
请懂的朋友给写段代码。。谢谢
...全文
107 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zjzb0409 2008-08-04
是3楼的fcuandy 哈哈 几楼都分不清楚
  • 打赏
  • 举报
回复
zjzb0409 2008-08-04
顶4楼的fcuandy
  • 打赏
  • 举报
回复
zjzb0409 2008-08-04
顶了 学习了 懂了 拿分 分不多 感谢~~~~~~~~~~~~~~~~~
  • 打赏
  • 举报
回复
cimzzxiang 2008-08-04
t_sql是分布式数据库语言,如oracle,sql server。
jetsql是access数据库的查询语言。。
  • 打赏
  • 举报
回复
gmlwl 2008-08-04
[Quote=引用 3 楼 fcuandy 的回复:]
在order by cpclick desc之后再加一个排序列,这个列需要没有重复值,比如如果表中有id列为自动编号,则写作:

.... order by cpclick desc,id


要注意jetsql和t-sql的区别。

t-sql的top n 才是真正的top n, 即n代表结果集最多有n行。
而 jetsql的 top n , n指的是order by 的列的不同值的个数。
以数据说明:

id num
1 1
2 11
3 2
4 1

t-sql
select top 3 * from tb order by num
得到…
[/Quote]

这个答案不错!
  • 打赏
  • 举报
回复
I_hui 2008-08-04
[Quote=引用 3 楼 fcuandy 的回复:]
在order by cpclick desc之后再加一个排序列,这个列需要没有重复值,比如如果表中有id列为自动编号,则写作:

.... order by cpclick desc,id


要注意jetsql和t-sql的区别。

t-sql的top n 才是真正的top n, 即n代表结果集最多有n行。
而 jetsql的 top n , n指的是order by 的列的不同值的个数。
以数据说明:

id num
1 1
2 11
3 2
4 1


t-sql
select top 3 * from tb order by num
得到…
[/Quote]

不明白jetsql和t-sql是个啥东东。。。
  • 打赏
  • 举报
回复
cimzzxiang 2008-08-04
[Quote=引用 3 楼 fcuandy 的回复:]
在order by cpclick desc之后再加一个排序列,这个列需要没有重复值,比如如果表中有id列为自动编号,则写作:

.... order by cpclick desc,id


要注意jetsql和t-sql的区别。

t-sql的top n 才是真正的top n, 即n代表结果集最多有n行。
而 jetsql的 top n , n指的是order by 的列的不同值的个数。
以数据说明:

id num
1 1
2 11
3 2
4 1

t-sql
select top 3 * from tb order by num
得到…
[/Quote]


学习了,以前一直没有碰到这种问题。。。。
  • 打赏
  • 举报
回复
fcuandy 2008-08-04
在order by cpclick desc之后再加一个排序列,这个列需要没有重复值,比如如果表中有id列为自动编号,则写作:

.... order by cpclick desc,id


要注意jetsql和t-sql的区别。

t-sql的top n 才是真正的top n, 即n代表结果集最多有n行。
而 jetsql的 top n , n指的是order by 的列的不同值的个数。
以数据说明:

id num
1 1
2 11
3 2
4 1

t-sql
select top 3 * from tb order by num
得到
1 1
4 1
3 2

jetsql得到
1 1
4 1
3 2
2 11

因为上面说了,它的n指的 num的不同值的个数。
  • 打赏
  • 举报
回复
kuangqiulei 2008-08-04
这个时候不应再对cpclick 进行排序的。
select top 4 cpid,cpname,cppic from cptable

另一种方法也可以在输出时进行一次rs.recordcount>4的判断,如果大于四那么就只输出前四条记录,否则全部输出。
  • 打赏
  • 举报
回复
Dogfish 2008-08-04
看你的sql语句只是拿4个记录而已。不会有5个的。
  • 打赏
  • 举报
回复
相关推荐
发帖
ASP
加入

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-08-04 01:51
社区公告
暂无公告