我写了这段代码,但感觉效率很低,有没有效率更高的等效代码?~~~不难

QYworld 2002-02-07 08:05:41
其中rs1打开关闭多次,感觉效率很低,能不能减少几次?是不是关键在sum函数上?

set rs1=server.createobject("adodb.recordset")
sql1="select class_id from topic where class_id="&rs("class_id")
rs1.open sql1,conn,1,1
topic_num=rs1.recordcount
rs1.close
sql1="select class_id from article where class_id="&rs("class_id")
rs1.open sql1,conn,1,1
article_num=rs1.recordcount
rs1.close
sql1="select sum(ar_dayhits) as [dayhits_num] from article where class_id="&rs("class_id")
rs1.open sql1,conn,1,1
dayhits_num=rs1("dayhits_num")
rs1.close
sql1="select sum(ar_weekhits) as [weekhits_num] from article where class_id="&rs("class_id")
rs1.open sql1,conn,1,1
weekhits_num=rs1("weekhits_num")
rs1.close
sql1="select sum(ar_allhits) as [allhits_num] from article where class_id="&rs("class_id")
rs1.open sql1,conn,1,1
allhits_num=rs1("allhits_num")
rs1.close
set rs1=nothing
...全文
14 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
QYworld 2002-02-08
  • 打赏
  • 举报
回复
谢谢各位,给分了!
希偌 2002-02-07
  • 打赏
  • 举报
回复
我这有一个sum()多表同时查询的例子,在access2000上运行通过,你试试!
<%
set rs=server.createobject("adodb.recordset")
strpath=server.mappath("db1.mdb")
strconn="provider=microsoft.jet.oledb.4.0;data source=" & strpath
straccess="select sum(cou)/2 as cou0,sum(cou1)/2 as cou1 from a,b"
rs.open straccess,strconn,1,3
response.write rs("cou0")&"<br>"&rs("cou1")
rs.close
set rs=nothing
%>
希偌 2002-02-07
  • 打赏
  • 举报
回复
count()的话,不能使用多表查询,否则得出来的结果是相同的,也就是count大的那个数,这个还是分开查询吧!
希偌 2002-02-07
  • 打赏
  • 举报
回复
union是合并查询!
QYworld 2002-02-07
  • 打赏
  • 举报
回复
chx007(乱发吹风),这段代码好像不对,提示错误!还有union是什么用法?
sql1="select count(*) as topic_num topic where class_id=" & rs("class_id")
sql1=sql1 & " union "
sql1=sql1 & "select count(*) as article_num article where class_id="&rs("class_id")

wzy9645(软件我不懂),其实很简单的代码,不复杂的,都是1能的到值
wzy9645 2002-02-07
  • 打赏
  • 举报
回复
看不过来,说一下表结构,再说一下实现目标吧

还有你的锁定和游标都设为1
rs.recordcount能取到正确值吗?
chx007 2002-02-07
  • 打赏
  • 举报
回复
'前两句可以合起来写!
sql1="select count(*) as topic_num topic where class_id=" & rs("class_id")
sql1=sql1 & " union "
sql1=sql1 & "select count(*) as article_num article where class_id="&rs("class_id")
rs1.open sql1,conn,1,1
topic_num=rs1("topic_num")
rs1.movenext
article_num=rs1("article_num")
rs1.close
'后三句完全也可以合起来写!
sql1="select sum(ar_allhits) as [allhits_num],sum(ar_dayhits) as [dayhits_num],sum(ar_weekhits) as [weekhits_num] from article where class_id="&rs("class_id")
rs1.open sql1,conn,1,1
dayhits_num=rs1("dayhits_num")
weekhits_num=rs1("weekhits_num")
allhits_num=rs1("allhits_num")
rs1.close
set rs1=nothing
QYworld 2002-02-07
  • 打赏
  • 举报
回复
摆脱,不要灌水阿,等着急用

谁能精简一下?谢谢~

给分的,一定
hmbory 2002-02-07
  • 打赏
  • 举报
回复
:)呵呵

28,391

社区成员

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

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