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 但是没效果 总是达不到希望的结果。
请懂的朋友给写段代码。。谢谢
...全文
161 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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个的。

28,408

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧