ASP进行留言统计的时候出现代码错误,请高手帮忙看看代码

<%dimidid=request.querystring("id")%><bodybgcolor="#DCEEFC">【已有<fontcolor="red"><%set... <%
dim id
id=request.querystring("id")
%>
<body bgcolor="#DCEEFC">
【已有<font color="red"><%
set rs = conn.execute("select iif(isnull(sum(tongjishuliang)),0,sum(tongjishuliang)) from qd_comment where movieid="&id&"")
response.write (rs(0))
rs.close
set rs =nothing
%></font></strong>位网友发表了看法,点击查看。】</a>

这是一段统计代码,ACCESS库,在没有数据的时候要让统计的值为0,有数据的时候就统计数据的条数,但是现在不论有数据还是没数据都显示的0,请高手帮忙看看呀。
展开
 我来答
百度网友66a8d48e5
2010-03-11 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3904万
展开全部
如果我没有说错的话,楼主的网站可能是一个电影网站,而这个要统计的表则是以某一个电影评论的表,然后在显示电影内容同时想直接显示出有多少人对这个电影进行了评论的.是不是这个意思?

而Access是一个桌面引擎的数据库不是一个服务器,他只支持ANSI-SQL而不支持Trans-SQL语句的!所以在使用聚合函数时一定要小心.像这样的统计绝对是不可取的!因为这样显然不够专业,让数据库执行的运算过大,而对数据库的优化是不够的!一般第一种考虑就是使用存储过程,这个在ACCESS中是受到支持的!可以使用传出参数与传入参数,只要一个就可以了,何必使用这么复杂的语句呢?根本就是对ACCESS不利的.因为本身ACCESS是桌面引擎,要将库中内容加到内存中进行查找的,这跟SQL有很大的不同的!

iif中再使用sum这样的聚合函数本身就是不利的!如果实在不想这样做的话,可以考虑使用一个计数聚合count就可以了!何必这样使用?基本上的判断是你的SQL语句出了问题的!这也是一种常用的小型的较小的数据库的使用方法的!
select count(*) from tablename where movieid='"&id&"'"
这里我只是估计你的id可能是一个字符型的,而不是数字型的,至于是什么型的,内外自己到数据库中去查看一下!然后用程序去判断select的结果是否有值,而不要直接使用两个聚合函数进行嵌套,本身聚合函数的执行效率并不太高的!

还有不明白的,可以问我!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-03-11
展开全部
不懂asp,不过你可以这样测试:
1。在页面输出id,看看到底有没有取到值。
2。将sql语句中的变量替换后,直接在数据库操作,看看有没有问题,能否查到数据。
估计就是这两个问题中的一个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山坛兄弟49c03e5
2010-03-11 · TA获得超过238个赞
知道小有建树答主
回答量:571
采纳率:0%
帮助的人:491万
展开全部
这样就可以了

已有<%=Conn.ExeCute("SELECT COUNT(tongjishuliang) FROM qd_comment WHERE movieid="&id&"")%>位网友发表了看法,点击查看。

不行百度HI我,帮你解决
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式