帮忙看看,现在自己的脑袋不会转了。

lisoon 2004-10-27 09:11:22
for i=1 to rs_day_num.recordcount
v=v+(rs_day_num(0)(i)-7)*(rs_day_num(0)(i)-7)
next
这个程序我是用来计算方差的。
rs_day_num是记录集来的。
现在rs_day_num(0)中现在有三个数据50,50,41,
现在我想用rs_day_num(0)(i)表示这三个数。
就是
rs_day_num(0)(1)=50
rs_day_num(0)(2)=50
rs_day_num(0)(3)=41
但rs_day_num(0)(i)根本就是错的用法。
谁第一个解决问题,分全给他。
明天早上来给贴。
...全文
148 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
konic 2004-10-28
  • 打赏
  • 举报
回复
是split生成一个数组,分割符号是",",

  • 打赏
  • 举报
回复
你用split变个数组也是种方法啊
duoduobaba 2004-10-28
  • 打赏
  • 举报
回复
day_num=split(rs_day_num(0),",")
lisoon 2004-10-28
  • 打赏
  • 举报
回复
问题是在rs_day_num(0)(i)这里,不能这样表达。
lisoon 2004-10-28
  • 打赏
  • 举报
回复
v = 0
Do While Not rs_day_num.EOF
If IsNumeric(rs_day_num(0)) Then
v = v + (CDbl(rs_day_num(0)) - 7) ^ 2
end if
rs_day_num.MoveNext
Loop

Response.Write v
最终解决方案。结贴
lhzongji 2004-10-28
  • 打赏
  • 举报
回复
Dim rs_day_num

Set rs_day_num=Server.CreateObject("ADODB.RECORDSET")

rs_day_num.Fields.Append "sumResult", 5, 10

rs_day_num.Open

rs_day_num.AddNew
rs_day_num(0) = 50
rs_day_num.Update

rs_day_num.AddNew
rs_day_num(0) = 50
rs_day_num.Update

rs_day_num.AddNew
rs_day_num(0) = 49
rs_day_num.Update

rs_day_num.MoveFirst

Dim v

v = 0

Do While Not rs_day_num.EOF
If IsNumeric(rs_day_num(0)) Then v = v + (CDbl(rs_day_num(0)) - 7) ^ 2
rs_day_num.MoveNext
Loop

Response.Write v





————————————————
结果是:5462
lhzongji 2004-10-28
  • 打赏
  • 举报
回复
晕菜。
dim v
v=0
while not rs_day_num.eof
if isnumeric(rs_day_num(0)) then v=v+(cdbl(rs_day_num(0))-7)^2
rs_day_num.movenext
loop '这里用LOOP,wend太慢了。

response.write v
lisoon 2004-10-28
  • 打赏
  • 举报
回复
楼上的别激动,我是测试很久,没辙才来问的。
while not rs_day_num.eof
response write rs_day_num(0)
‘response write rs_day_num(1)//记录集没有这个数,
‘ response write rs_day_num(2)//也没有这个数
rs_day_num.movenext
wend
这样循环出来是
50
50
41
你给出来的,我还没有发问前就用过的,不过没有出错,就是打印V的时候,没有值。
降降激动
解决了,我请吃饭。
呵呵,做出来,我的薪水可以加多两千,如果做不好,只能那拿可怜的2000多。
lhzongji 2004-10-28
  • 打赏
  • 举报
回复
rs_day_num是记录集来的。
————————————————————

晕倒,难道我不知道这个是记录集??????



数据肯定是动态的。
————————————————————
再次晕到,难道我上面的解决方案不是根据动态数组的?



因为方差公式本来就是的数据就是由n来确定的。
因为我选出来的记录只有sum(Qty),所以只有一个rs_day_num(0)了。但是由于sum(Qty)是由日期来分组计算的。日期有几个,数据就有几个。
————————————————————
狂晕不止,原来SUM函数可以返回 50,51,52 这种奇怪的数值型数据,上帝啊!!!你到底来CSDN是干什么的?调戏大家?
lisoon 2004-10-28
  • 打赏
  • 举报
回复
rs_day_num是记录集来的。
数据肯定是动态的。
因为方差公式本来就是的数据就是由n来确定的。
因为我选出来的记录只有sum(Qty),所以只有一个rs_day_num(0)了。但是由于sum(Qty)是由日期来分组计算的。日期有几个,数据就有几个。
我还有十几条比这个还麻烦的公式,七天,我连需求分析,编码都要一起完,还有这些数据还要做成报表的,我每天忙十几个小时,超额了,现在脑袋是一片空白。
还请各位多多帮忙。
lhzongji 2004-10-28
  • 打赏
  • 举报
回复
最好使用cdbl或val转化一下数据类型。

for i=1 to rs_day_num.recordcount
if instr(1,rs_day_num(0),",") then
pos=split(rs_day_num(0),",")
for j=0 to ubound(pos)
if isnumeric(pos(j)) then
v=v+(cdbl(pos(j))-7)^2
end if
next
end if
rs_day_num.movenext
next
lhzongji 2004-10-28
  • 打赏
  • 举报
回复
首先我觉得你的循环都有点奇怪。

i从1到recordcount,如果recordcount有100
难道你数组的维度也有100???

其次,你rs_day_num(0)中的格式是否是 50,51,52 这种逗号分割的格式??

for i=1 to rs_day_num.recordcount
if instr(1,rs_day_num(0),",") then
pos=split(rs_day_num(0),",")
for j=0 to ubound(pos)
if isnumeric(pos(j)) then
v=v+(pos(j)-7)^2
end if
next
end if
rs_day_num.movenext
next
lisoon 2004-10-28
  • 打赏
  • 举报
回复
试过,不行。
这下等死了。
lhzongji 2004-10-28
  • 打赏
  • 举报
回复
for i=1 to rs_day_num.recordcount
v=v+(split(rs_day_num(0),",")(i-1)-7)*(split(rs_day_num(0),",")(i-1)-7)
next
lisoon 2004-10-28
  • 打赏
  • 举报
回复
没有人来领分吗?,不要浪费了。
lisoon 2004-10-28
  • 打赏
  • 举报
回复
ary=split(rs_day_num(0),",")
for i=0 to ubound(ary)-1
v = v + (arr(j) - 7) * (arr(j) - 7)
next
其实我也试过很多种方法了,就上面的还是不行。
这样ary=split(rs_day_num(0),",")会出错。
我想记录集是不能这样分解成数组的吧。
在sql句中,我是用sum(Qty)然后通过group by 日期 来实现的。
所以只有rs_day_num(0)有值,rs_day_num(1)以上这些是没有值的,
因为日期只有三天,所以rs_day_num(0)就有三个值。
AntinomyArt 2004-10-28
  • 打赏
  • 举报
回复
<%
for i = o to rs.recordcount
arr = split(rs(i), ",")
for j = 0 to ubound(arr)
v = v + (arr(j) - 7) * (arr(j) - 7)
response.write v
next
next
%>
dh20156 2004-10-27
  • 打赏
  • 举报
回复
for i=0 to rs_day_num.recordcount-1

28,390

社区成员

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

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