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 但是没效果 总是达不到希望的结果。
请懂的朋友给写段代码。。谢谢
...全文
149 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,409

社区成员

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

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