| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 871 人关注过本帖
标题:有关统计的问题
只看楼主 加入收藏
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 

呵呵!
我有事出去了,边开车边想着这个问题,想到了尝试把这句删除,
回来看看你已解决了问题,经测试完全达到了所想效果!!!
非常感谢ayue222朋友!!!!!!!!!!
至此这个问已圆满解决!
相信路过走过有心和没有心看贴的都从ayue222朋友的解答中学到不少知识了.
本人认为从样例中学习ASP比较轻松和易于上手,
但需要基础和举一反三多思考......
这只不过是本人认为而已,
其他人如有更好的方法那就按更好的方法去学习吧!
我看到看此贴的人也不少,所以在此说这些话想鼓励一下想学习ASP的人,
如有说错的地方请愿谅,甚至骂几句也无所为......


感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-21 19:05
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
ayue222朋友我们再来一些复杂点的 [统计运算] 好吗?
我一直对于二个表一齐统计运算知道甚少,
在上面的例子的基础上结合下面的要求,您能做个范例吗?
=============================================================================
表名 字段0 字段1 字段2 字段3 字段4 字段5 字段6 字段7 字段8
id id A B C D E F G H
-----------------------------------------------------------------------------
id2 id A2 B2 C2 D2 E2 F2 G2 H2
=============================================================================
这是数据库中二个表的结构,其实表可以没有字段5,6,7,8的,做出不过直观些,字段比原来增加了二个。
统计运算时要求表一按照上面的例子;表二除将 [计算出的和] 显示在[表字段5]外,其他按表一.
意思是将二个表合并读出显示在页面时还需要进行如下的运算:
[字段5] - [字段6] = [字段7] x [字段2] = [字段8]
----------------------------------------------------------------------------------
大概意思是:二个表的数据进行统计合并后经运算,作为数据显示在页面.
==================================================================================
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from [ID] as t where id in (select top 1 id from [ID] where A=t.A and B=t.B)"
response.write sql
rs.Open sql,conn,1,1
%>

<table>
<tr>
<td>字段0</td><td>字段1</td><td>字段2</td><td>字段3</td>
<td>字段4</td><td>字段5</td><td>字段6</td>><td>字段7</td><td>字段8</td>
</tr>
<%
if not (rs.bof and rs.eof) then
do while Not rs.eof %>
<tr>
<td><%=rs("id")%></td>
<td><%=rs("A")%></td>
<td><%=rs("B")%></td>
<td><%=rs("C")%></td>
<td><%=rs("D")%></td>
<td>表二计算出的和</td>
<td><%set rs1=conn.execute ("select sum(f) as ff from [id] where A="&rs("A")&" and B="&rs("B")):response.write rs1("ff")%>(这个结果是:表一计算出的和)</td>
<td>[字段5] - [字段6] = [字段7]</td>
<td>[字段7] x [字段2] = [字段8]</td>
</tr>
<%
rs.movenext
loop
end if
rs.close:set rs=nothing
%>
</table>
===================================================================================================



感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-22 01:19
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
收藏
得分:0 

个人认为...这些运算完全可以在保存到数据库的之前就进行的,将统计后的结果保存到相应的字段即可 ..当然,如果是已存在的库就另当别论 ..
不知道这2个表之间有没有联系?是通过哪个字段相关联的 ?

2007-08-22 09:20
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
在保存到数据库的之前运算完,将统计后的结果保存,然后将二个字段直接运算,
这样做速度上会快些,但查询每条数据的细节就不能了.

我意思是将2个表已有的数据经统计运算再显示,结果无需保存到数据库.
2个表之间没有联系,2个表的数据各自录入的,但字段内容基本相同.

就是想通过本次的统计运算,把2个表的数据合并结合起来及显示在页面.

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-22 15:25
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
收藏
得分:0 
<td>[字段5] - [字段6] = [字段7]</td>
<td>[字段7] x [字段2] = [字段8]</td>

那你的意思是这里的显示结果也是经过查询数据库再循环列出来?
如果2个表没有联系的话每一行显示的这些结果都是一样的哦 ...因为这些字段是显示在表1的循环里面的 ...
2007-08-22 15:35
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
<td>[字段5] - [字段6] = [字段7]</td>
<td>[字段7] x [字段2] = [字段8]</td>

这二个结果是当2个表统计合并,产生了 [字段1,2,3,4]后,再通过对:
[字段5] - [字段6] 运算得到 [字段7] 的结果
[字段7] x [字段2] 运算得到 [字段8] 的结果

实际是2个表各自按 [前面已做成的范例] 得到的结果,
再统计和运算,相同的合并作一条数据显示,不相同的各自按一条数据显示.

例如:
表一的字段A是 [123] 字段B是 [8]
表二的字段A2是 [123] 字段B2是 [8]
那么这条数据就可以合并成一条数据显示了,反之则不合并而是单独作一条数据显示.





感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-22 16:07
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
收藏
得分:0 
以下是引用zhongx在2007-8-22 16:07:06的发言:
<td>[字段5] - [字段6] = [字段7]</td>
<td>[字段7] x [字段2] = [字段8]</td>

这二个结果是当2个表统计合并,产生了 [字段1,2,3,4]后,再通过对:
[字段5] - [字段6] 运算得到 [字段7] 的结果
[字段7] x [字段2] 运算得到 [字段8] 的结果

实际是2个表各自按 [前面已做成的范例] 得到的结果,
再统计和运算,相同的合并作一条数据显示,不相同的各自按一条数据显示.

例如:
表一的字段A是 [123] 字段B是 [8]
表二的字段A2是 [123] 字段B2是 [8]
那么这条数据就可以合并成一条数据显示了,反之则不合并而是单独作一条数据显示.





...从来没有做过这么复杂的程序 ....头都被闹晕哒 ...

首先你要弄清楚,你说的统计运算是在进行数据库查询的时候进行还是对查询之后的数据集进行
目前来看你是对他们各自的2个数据集(结果)进行统计运算 ...
关键有下面几点 :
1、因为数据显示需要循环列出,那么就需要比较2个数据的数量,谁的数据多就以谁的数据集来循环....
2、通过条件 表一.A=表二.A2 and 表一.B=表二.B2来进行比较,相同进行合并统计,不同的...表一\表二的都显示 ..这里需要注意判断各表是否已经结束了循环,如果已经循环到最后则不输出..

乱七八糟的也不知道说了些撒 ....水平有限 ..请见谅 ........

2007-08-22 17:27
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
可能是我表达能力的问题搞复杂了,跟你提出的第二点相同:

2、通过条件 表一.A=表二.A2 and 表一.B=表二.B2来进行比较,相同进行合并统计,不同的...表一\表二的都显示 ..这里需要注意判断各表是否已经结束了循环,如果已经循环到最后则不输出.

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-22 17:39
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
收藏
得分:0 
今天比较忙..不能直接给你代码了 ...大概说一下吧 ..

得到的2个表的数据集生成数组,sql=rs.getRows (),sql1=rs1.getRows ()
然后比较2个数据集的下标. ubound(sql,2),ubound(sql1,2),以大的进行循环..
for i=0 to ubound(sql,2) //假设sql数据多些..
<%=sql(0,i)%> //第一个表的第一个字段 ,这里是 ID
<%=sql(1,i)%> //第一个表的第二个字段 ,这里是 A
<%=sql1(0,i)%> //第二个表的第一个字段 ,这里是 ID2
<%=sql1(1,i)%> //第二个表的第二个字段 ,这里是 A2
.... //以此类推
next
2007-08-22 17:49
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
没关系,如您愿意的话等到您有时间再来教我好吗?

我先按照您给出的思路去思考,先谢谢您!
......

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-22 18:46
快速回复:有关统计的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036169 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved