我现在有5组数据,如下所示:
X1 X2 X3 X4 X平均值 X极差值
(1) 1 2 3 4 2.5 3
(2) 1 2 3 4 2.5 3
(3) 1 2 3 4 2.5 3
(4) 1 2 3 4 2.5 3
(5) 1 2 3 4 2.5 3
合计 ? ? ? ? ? ?
这上面的每组数据都是从数据库中调出来的,现在我想对每项进行合计计算,不知有什么好的方法,让数据从库里一调出来,就自动显示合计好的数据.(图示中打问号的即为所求之值)
在线等结果,一经测试可行,马上给50分,绝不失言!
17 个解决方案
#1
你显示记录的时候肯定有循环的,简单一点在循环的时候做个累加就行了哇
#2
sum(X1) as totalX1,sum(X2) as totalX2,sum(X3) as totalX3,sum(X4) as totalX4,sum(X平均值) as totalX平均值,sum(X极差值) as totalX值 form [你的表]
#3
作循环的时候把数值付值给变量然后循化加
dim a,sumA
sumA=0
do while not rs.eof
a=rs("x1")
sumA=sumA+a
rs.movenext
loop
response.write sumA
dim a,sumA
sumA=0
do while not rs.eof
a=rs("x1")
sumA=sumA+a
rs.movenext
loop
response.write sumA
#4
你说的是求合计,如果是求平均值就是avg(X平均值) as 平均值1
#5
sorry,上面的from输错了。
sum(X1) as totalX1,sum(X2) as totalX2,sum(X3) as totalX3,sum(X4) as totalX4,sum(X平均值) as totalX平均值,sum(X极差值) as totalX值 from [你的表]
sum(X1) as totalX1,sum(X2) as totalX2,sum(X3) as totalX3,sum(X4) as totalX4,sum(X平均值) as totalX平均值,sum(X极差值) as totalX值 from [你的表]
#6
上面只是我举的一个例子,每组数据肯定会不一样,但也有重复的时候,所以我现在只求X平均值与X极值,这个值的算法就是:X1平均值+X2平均值+X3平均值……XN平均值 / N = XX平均值
同样,X极值与一样的求法!
同样,X极值与一样的求法!
#7
存到数组里面
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from table"
rs.Open sql,conn,3,1
count=rs.RecordCount
i=0
j=0
do while not rs.eof
for j=1 to 6
tj(i,j)=tj(i,j)+1
next
rs.MoveNext
loop
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from table"
rs.Open sql,conn,3,1
count=rs.RecordCount
i=0
j=0
do while not rs.eof
for j=1 to 6
tj(i,j)=tj(i,j)+1
next
rs.MoveNext
loop
#8
sql:
select avg(x1) as avgx1,avg(x2) as avgx2,avg(x3) as avgx3,avg(x4) as avgx1,avg(X平均值) as avgavgx,avg(X极差值) as avgxx from table
select avg(x1) as avgx1,avg(x2) as avgx2,avg(x3) as avgx3,avg(x4) as avgx1,avg(X平均值) as avgavgx,avg(X极差值) as avgxx from table
#9
楼上“luckyprg”的已经可以了
#10
上面的朋友说的很明白了.
用AVG函数 和 SUM函数就可以了啊
用AVG函数 和 SUM函数就可以了啊
#11
我现在有N组数据,如下所示:
X1 X2 X3 X4 X平均值 X极差值
(1) 1 2 3 4 2.5 3
(2) 2 3 4 5 3.5 3
(3) 3 4 5 6 4.5 3
(4) 4 5 6 7 5.5 3
(5) 5 6 7 8 6.5 3
合计 ? ? ? ? ? ?
首先谢谢各位老大的支持,但我这测试数据并不一定是5组,有可能是10组,有可能是25组,数据都是事先提交到库里的,而且每组X平均值与X极差值在提交到库时,都己经算出来了!所以现在目前是要求一个最好的办法将从X的平均值相加,如果是5组,那么合计中X平均值=SUM(X平均值)/5
如果是25组,那么X平均值=SUM(X平均值)/25 如果是30组,X平均值=SUM(X平均值)/30
jacky1_102(小蜗牛),你说用数组,可以按我说的,把程序写得更详细点吗?
我在库中定义的表为:tab_xr
字段名为:ID,x1,x2,x3,x4 xr,xr_r
请各位老大,再想点办法!
X1 X2 X3 X4 X平均值 X极差值
(1) 1 2 3 4 2.5 3
(2) 2 3 4 5 3.5 3
(3) 3 4 5 6 4.5 3
(4) 4 5 6 7 5.5 3
(5) 5 6 7 8 6.5 3
合计 ? ? ? ? ? ?
首先谢谢各位老大的支持,但我这测试数据并不一定是5组,有可能是10组,有可能是25组,数据都是事先提交到库里的,而且每组X平均值与X极差值在提交到库时,都己经算出来了!所以现在目前是要求一个最好的办法将从X的平均值相加,如果是5组,那么合计中X平均值=SUM(X平均值)/5
如果是25组,那么X平均值=SUM(X平均值)/25 如果是30组,X平均值=SUM(X平均值)/30
jacky1_102(小蜗牛),你说用数组,可以按我说的,把程序写得更详细点吗?
我在库中定义的表为:tab_xr
字段名为:ID,x1,x2,x3,x4 xr,xr_r
请各位老大,再想点办法!
#12
上面的求值写错了!
#13
sql="select sum(x1) as a1,sum(x2) as a2,…… from [表名]"
有多少项就写多少项
有多少项就写多少项
#14
用sum和avg 就可以满足你的要求了.有多少项就写多少项,你总不可能不写SQL语句就调用吧
#15
各位老大:
set rs_pj=server.createobject("adodb.recordset")
sql="select sum(xr_x) as totalxr,sum(xr_r) as totalxr2 from tab_xr_2 where xrid="&xrid
rs_pj.open sql,con,1,1
num=trim(rs_pj("totalxr"))
num2=trim(rs_pj("totalxr2"))
按照你们的方法,我解决了一问题,但后面又出现了问题,现在我如果将表中XR_X与XR_R数据类型设置为VARCHAR,这是在调用时,就会出错,错误提示如下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
如果我将数据类型改:FLOAT ,这时不报错了!但我调出来的平均值结果中如果XR_X>1,例如:2.3>1,则显示:2.3,一量如果0.3>1,则调出来显示为:.3,也就是前面的那个0没有了!看起来不舒服!不知该如何解决!
这个问题是前面类型设置错误!还是调出来需要改动!
set rs_pj=server.createobject("adodb.recordset")
sql="select sum(xr_x) as totalxr,sum(xr_r) as totalxr2 from tab_xr_2 where xrid="&xrid
rs_pj.open sql,con,1,1
num=trim(rs_pj("totalxr"))
num2=trim(rs_pj("totalxr2"))
按照你们的方法,我解决了一问题,但后面又出现了问题,现在我如果将表中XR_X与XR_R数据类型设置为VARCHAR,这是在调用时,就会出错,错误提示如下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
如果我将数据类型改:FLOAT ,这时不报错了!但我调出来的平均值结果中如果XR_X>1,例如:2.3>1,则显示:2.3,一量如果0.3>1,则调出来显示为:.3,也就是前面的那个0没有了!看起来不舒服!不知该如何解决!
这个问题是前面类型设置错误!还是调出来需要改动!
#16
<%=formatnumber(0.235,3,true)%>
FormatNumber(
expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]
)
Arguments
Expression
必选项。要被格式化的表达式。
NumDigitsAfterDecimal
可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
IncludeLeadingDigit
可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。
UseParensForNegativeNumbers
可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。
GroupDigits
可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。
设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:
FormatNumber(
expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]
)
Arguments
Expression
必选项。要被格式化的表达式。
NumDigitsAfterDecimal
可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
IncludeLeadingDigit
可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。
UseParensForNegativeNumbers
可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。
GroupDigits
可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。
设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:
#17
FormatNumber(".0102",,-1)
#1
你显示记录的时候肯定有循环的,简单一点在循环的时候做个累加就行了哇
#2
sum(X1) as totalX1,sum(X2) as totalX2,sum(X3) as totalX3,sum(X4) as totalX4,sum(X平均值) as totalX平均值,sum(X极差值) as totalX值 form [你的表]
#3
作循环的时候把数值付值给变量然后循化加
dim a,sumA
sumA=0
do while not rs.eof
a=rs("x1")
sumA=sumA+a
rs.movenext
loop
response.write sumA
dim a,sumA
sumA=0
do while not rs.eof
a=rs("x1")
sumA=sumA+a
rs.movenext
loop
response.write sumA
#4
你说的是求合计,如果是求平均值就是avg(X平均值) as 平均值1
#5
sorry,上面的from输错了。
sum(X1) as totalX1,sum(X2) as totalX2,sum(X3) as totalX3,sum(X4) as totalX4,sum(X平均值) as totalX平均值,sum(X极差值) as totalX值 from [你的表]
sum(X1) as totalX1,sum(X2) as totalX2,sum(X3) as totalX3,sum(X4) as totalX4,sum(X平均值) as totalX平均值,sum(X极差值) as totalX值 from [你的表]
#6
上面只是我举的一个例子,每组数据肯定会不一样,但也有重复的时候,所以我现在只求X平均值与X极值,这个值的算法就是:X1平均值+X2平均值+X3平均值……XN平均值 / N = XX平均值
同样,X极值与一样的求法!
同样,X极值与一样的求法!
#7
存到数组里面
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from table"
rs.Open sql,conn,3,1
count=rs.RecordCount
i=0
j=0
do while not rs.eof
for j=1 to 6
tj(i,j)=tj(i,j)+1
next
rs.MoveNext
loop
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from table"
rs.Open sql,conn,3,1
count=rs.RecordCount
i=0
j=0
do while not rs.eof
for j=1 to 6
tj(i,j)=tj(i,j)+1
next
rs.MoveNext
loop
#8
sql:
select avg(x1) as avgx1,avg(x2) as avgx2,avg(x3) as avgx3,avg(x4) as avgx1,avg(X平均值) as avgavgx,avg(X极差值) as avgxx from table
select avg(x1) as avgx1,avg(x2) as avgx2,avg(x3) as avgx3,avg(x4) as avgx1,avg(X平均值) as avgavgx,avg(X极差值) as avgxx from table
#9
楼上“luckyprg”的已经可以了
#10
上面的朋友说的很明白了.
用AVG函数 和 SUM函数就可以了啊
用AVG函数 和 SUM函数就可以了啊
#11
我现在有N组数据,如下所示:
X1 X2 X3 X4 X平均值 X极差值
(1) 1 2 3 4 2.5 3
(2) 2 3 4 5 3.5 3
(3) 3 4 5 6 4.5 3
(4) 4 5 6 7 5.5 3
(5) 5 6 7 8 6.5 3
合计 ? ? ? ? ? ?
首先谢谢各位老大的支持,但我这测试数据并不一定是5组,有可能是10组,有可能是25组,数据都是事先提交到库里的,而且每组X平均值与X极差值在提交到库时,都己经算出来了!所以现在目前是要求一个最好的办法将从X的平均值相加,如果是5组,那么合计中X平均值=SUM(X平均值)/5
如果是25组,那么X平均值=SUM(X平均值)/25 如果是30组,X平均值=SUM(X平均值)/30
jacky1_102(小蜗牛),你说用数组,可以按我说的,把程序写得更详细点吗?
我在库中定义的表为:tab_xr
字段名为:ID,x1,x2,x3,x4 xr,xr_r
请各位老大,再想点办法!
X1 X2 X3 X4 X平均值 X极差值
(1) 1 2 3 4 2.5 3
(2) 2 3 4 5 3.5 3
(3) 3 4 5 6 4.5 3
(4) 4 5 6 7 5.5 3
(5) 5 6 7 8 6.5 3
合计 ? ? ? ? ? ?
首先谢谢各位老大的支持,但我这测试数据并不一定是5组,有可能是10组,有可能是25组,数据都是事先提交到库里的,而且每组X平均值与X极差值在提交到库时,都己经算出来了!所以现在目前是要求一个最好的办法将从X的平均值相加,如果是5组,那么合计中X平均值=SUM(X平均值)/5
如果是25组,那么X平均值=SUM(X平均值)/25 如果是30组,X平均值=SUM(X平均值)/30
jacky1_102(小蜗牛),你说用数组,可以按我说的,把程序写得更详细点吗?
我在库中定义的表为:tab_xr
字段名为:ID,x1,x2,x3,x4 xr,xr_r
请各位老大,再想点办法!
#12
上面的求值写错了!
#13
sql="select sum(x1) as a1,sum(x2) as a2,…… from [表名]"
有多少项就写多少项
有多少项就写多少项
#14
用sum和avg 就可以满足你的要求了.有多少项就写多少项,你总不可能不写SQL语句就调用吧
#15
各位老大:
set rs_pj=server.createobject("adodb.recordset")
sql="select sum(xr_x) as totalxr,sum(xr_r) as totalxr2 from tab_xr_2 where xrid="&xrid
rs_pj.open sql,con,1,1
num=trim(rs_pj("totalxr"))
num2=trim(rs_pj("totalxr2"))
按照你们的方法,我解决了一问题,但后面又出现了问题,现在我如果将表中XR_X与XR_R数据类型设置为VARCHAR,这是在调用时,就会出错,错误提示如下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
如果我将数据类型改:FLOAT ,这时不报错了!但我调出来的平均值结果中如果XR_X>1,例如:2.3>1,则显示:2.3,一量如果0.3>1,则调出来显示为:.3,也就是前面的那个0没有了!看起来不舒服!不知该如何解决!
这个问题是前面类型设置错误!还是调出来需要改动!
set rs_pj=server.createobject("adodb.recordset")
sql="select sum(xr_x) as totalxr,sum(xr_r) as totalxr2 from tab_xr_2 where xrid="&xrid
rs_pj.open sql,con,1,1
num=trim(rs_pj("totalxr"))
num2=trim(rs_pj("totalxr2"))
按照你们的方法,我解决了一问题,但后面又出现了问题,现在我如果将表中XR_X与XR_R数据类型设置为VARCHAR,这是在调用时,就会出错,错误提示如下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
如果我将数据类型改:FLOAT ,这时不报错了!但我调出来的平均值结果中如果XR_X>1,例如:2.3>1,则显示:2.3,一量如果0.3>1,则调出来显示为:.3,也就是前面的那个0没有了!看起来不舒服!不知该如何解决!
这个问题是前面类型设置错误!还是调出来需要改动!
#16
<%=formatnumber(0.235,3,true)%>
FormatNumber(
expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]
)
Arguments
Expression
必选项。要被格式化的表达式。
NumDigitsAfterDecimal
可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
IncludeLeadingDigit
可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。
UseParensForNegativeNumbers
可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。
GroupDigits
可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。
设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:
FormatNumber(
expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]
)
Arguments
Expression
必选项。要被格式化的表达式。
NumDigitsAfterDecimal
可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
IncludeLeadingDigit
可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。
UseParensForNegativeNumbers
可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。
GroupDigits
可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。
设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:
#17
FormatNumber(".0102",,-1)