求ASP中用SQL查询三个数据库,更新数据

三个表的关系是:表1中的d_dengji对应表3中的z_zsdengji,d_mc对应表2中的各个字段名表2中的t_fenlei对应表3中的z_fenlei现在要计算表3... 三个表的关系是:
表1中的d_dengji对应表3中的z_zsdengji, d_mc对应表2中的各个字段名
表2中的t_fenlei对应表3 中的z_fenlei
现在要计算表3中z_jiangjin显示“未计算”的值
也就是表3z_fenlei=表2T_fenglei,表3Z_zsdengji=表1D_dengji(其表2的D_mc对应在表2中的字段值)来对表3中的未计算的进行计算,得出具体的值。
是ACCESS数据库,望高手给出完全的能算出结果的代码
数据库的链接代码就不用了。我太菜,尽量写完整些,谢谢
数据库我上传到360云盘了,高手下载给我测试一下,代码一定要可用,我真的太菜了。
==================================================================
别人给我如下代码:
rs1.open select * from dengji do while not rs1.eofrs2.open select rs1(“d_mc”) as aaaa from tongji where t_fenlei=rs1(“d_dnegji”)update zhengjian set z_jiangjin=rs2("aaaa") where z_zsdengji=rs1(“d_dnegji”)loop
但运行时显示
语法错误/Jjcount.asp, line 20, column 9 rs1.open select * from dengji
这样的写法可以吗,为什么语法错误rs1.open select * from dengji
展开
 我来答
miniappkFwV0962YhOPw
2014-01-11 · 请开发者输入账号签名
miniappkFwV0962YhOPw
采纳数:2709 获赞数:7887

向TA提问 私信TA
展开全部
dim sql,D_mc
sql="select * from ZhengJian where Z_jiangjin='未计算'"
set rs=conn.execute(sql)
do while not rs.eof
set rs1=conn.execute("select D_mc from Dengji where D_Dengji='"&rs("Z_zsdengji")&"'")

if not(rs1.eof and rs1.bof) then
D_mc=rs1("D_mc")
else
response.write("数据表1数据不存在")
end if

set rs2=conn.execute("select "&D_mc&" from Tongji where T_fenlei='"&rs("Z_fenlei")&"'")
if not(rs2.eof and rs2.bof) then
conn.execute("upeate ZhengJian set Z_jiangjin='"&rs2(D_mc)&"' where Z_jiangjin='未计算'")
response.write("数据表2数据不存在")
end if
rs.movenext
loop

没测试,你看看吧,我也比较笨。你这个要求,应该是可以直接用一句SQL来完成的,但我不会写。上面代码可能会有错误,自己看看理解吧
更多追问追答
追问
对,就是要将“未计算”这字段更新为所对应的的奖金值
追答
想用VB代码的那个功能,结果出现上面的那些东西,下面是我写的

dim sql,D_mcsql="select * from ZhengJian where Z_jiangjin='未计算'"set rs=conn.execute(sql)do while not rs.eofset rs1=conn.execute("select D_mc from Dengji where D_Dengji='"&rs("Z_zsdengji")&"'")if not(rs1.eof and rs1.bof) thenD_mc=rs1("D_mc")elseresponse.write("数据表1数据不存在")end ifset rs2=conn.execute("select "&D_mc&" from Tongji where T_fenlei='"&rs("Z_fenlei")&"'")if not(rs2.eof and rs2.bof) thenconn.execute("upeate ZhengJian set Z_jiangjin='"&rs2(D_mc)&"' where Z_jiangjin='未计算'")response.write("数据表2数据不存在")end ifrs.movenextloop
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
书飞扬阅读网
2014-01-11 · TA获得超过157个赞
知道小有建树答主
回答量:213
采纳率:40%
帮助的人:70.1万
展开全部
<%
Set rs=server.CreateObject("adodb.recordset")
sql="Select * From dengji order by d_id desc"
rs.open sql,conn,1,1
do while not rs.eof
    Set rs1=server.CreateObject("adodb.recordset")
sql1="Select "&rs("d_mc")&" as aaaa From tongji where t_fenlei='"&rs("d_dengji")&"' order by d_id desc"
rs1.open sql1,conn,1,1
if not rs1.eof then
jiangji=rs1("aaaa")
end if
rs1.close
set rs1=nothing

conn.execute("update zhengjian set z_jiangjin="&jiangjin&" where z_zsdengji='"&rs("d_dengji")&"' ")

rs.movenext
loop
rs.close
set rs=nothing
%>

不知道行不行,大概就是这样

更多追问追答
追问
jiangji=rs1("aaaa")改成了jiangjin,和下面对应,但运行后,Z_jiangjin值仍未改变,还是未计算。
追答
<%
Set rs=server.CreateObject("adodb.recordset")
sql="Select * From dengji order by d_id desc"
rs.open sql,conn,1,1
do while not rs.eof

Set rs1=server.CreateObject("adodb.recordset")
sql1="Select t_feilei, "&rs("d_mc")&" as aaaa From tongji where t_fenlei='"&rs("d_dengji")&"' order by d_id desc"
rs1.open sql1,conn,1,1
if not rs1.eof then
jiangjin=rs1("aaaa")
fenlei=rs1("t_feilei")
end if
rs1.close
set rs1=nothing
 
conn.execute("update zhengjian set z_jiangjin="&jiangjin&" where z_fenlei='"&fenlei&"' ")
 
rs.movenext
loop
rs.close
set rs=nothing
%>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-12
展开全部
做任务,帮你顶一顶。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式