写一条SQL求平均值的语句,并将结果赋值给符合条件的字段!

详细的语句如下,其中ii用来保存班别, j用来保存组别j
set rs=server.CreateObject("adodb.recordset")
for i=1 to 6
for j=1 to 7
sql="select avg('"&jj(j)&"') as pj from sdata while 班别='"&ii(i)&"' and 打分=1"
rs.open sql,1,1
sql="update sdata set 小组成绩="&rs("pj")&" while 班别='"&ii(i)&"' and 组别='"&jj(j)&"'"
conn.execute(sql)
rs.close
next
next
1、测试时显示:ADODB.Recordset (0x800A0BB9) 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
2、小组成绩、班别、组别均是字段名,"小组成绩"是单精度的,"班别"、"组别"是字符型,数据库里共有6个班,7个组。
3、这段程序的目的是:计出指定班的各个组别的平均分,然后将平均分赋值给各个组的每个成员。

不能这样select avg('"&jj(j)&"')写吧, avg是一个求平均值函数,但它一般用在分组查询或者汇总查询语句中,这里的J明显是一个变量,avg函数的参数应该是sdata表中的字段名,怎么是一个变量呢,另外sql="select avg('"&jj(j)&"') as pj from sdata while 班别='"&ii(i)&"' and 打分=1" 这条查询语句根本不能使用AVG函数!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-29
sql="update sdata set 小组成绩='"&rs("pj")&" ' while 班别='"&ii(i)&"' and 组别='"&jj(j)&"'"

算出来的是数字,小组成绩也要加上单引号
相似回答