| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 871 人关注过本帖
标题:有关统计的问题
只看楼主 加入收藏
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
结帖率:88.24%
收藏
 问题点数:0 回复次数:19 
有关统计的问题
问题要求:
总体上把以下的数据库中的这些字段读出并显示在页面:
id A B C D E F
关键处:
1.全部数据库id中A字段与A字段及C字段与C字段比较后 不相同 的作各自显示。
2.全部数据库id中A字段与A字段及C字段与C字段比较后 相同 的合并为一条显示,
因为相同所以A B C D E 取其一即可,但需要 F 的数全部相加后一并显示。
搜索更多相关主题的帖子: 统计 
2007-08-20 00:17
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
收藏
得分:0 
select * from id as i where A in (select top 1 A from id where A=i.A and C=i.C) //这句大概只能做到1、2俩条件 。。因为没有进行具体的 测试 。。。。不知道满不满足要求。。请zhongx朋友自行修改、测试一下吧 。。。
2007-08-20 09:28
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
收藏
得分:0 

F值的和的显示不知道是这么显示法 .... 能不能用具体的 数据例子说明一下...

2007-08-20 09:44
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
以下是引用ayue222在2007-8-20 9:44:11的发言:

F值的和的显示不知道是这么显示法 .... 能不能用具体的 数据例子说明一下...

G1FcPatp.txt (844 Bytes) 有关统计的问题



偶简单的做了个页面,运行没有错,只是功能实现不了.
你看看明不明白,可能你理解为字段A和字段B相同时合并成一条数据显示在页面.
想实现的功能:
当字段A和其他数据的字段A及字段B和其他数据的字段B相同时能否合并成一条数据显示在页面?

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

<%
dim conn,mdbfile
mdbfile=server.mappath("0.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=;dbq="&mdbfile
%>

<html>
<head>
<title>统计测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<head>

<body>

<%
set rs=server.CreateObject("adodb.recordset")
sql="select id,a,b,c,d,e,f 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>字段A</td><td>字段B</td><td>字段C</td><td>字段D</td><td>字段E</td><td>字段F</td>
</tr>
<% do while Not rs.eof %>
<tr>
<td><%=rs(1)%></td>
<td><%=rs(2)%></td>
<td><%=rs(3)%></td>
<td><%=rs(4)%></td>
<td><%=rs(5)%></td>
<td><%set rs1=conn.execute ("select sum(f) from [id] where A="&rs(1)&" and B="&rs(2)):response.write rs1(0)%></td>
</tr>
<%
rs.movenext
loop
%>
</table>

</body>
</html>

一行SQL语句貌似达不到你的要求 ...这个是我在你给的代码的基础上改的 ...基本达到了你的要求 ..

[此贴子已经被作者于2007-8-20 15:50:57编辑过]

2007-08-20 15:20
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 

看你现在的写法,我知道你已完全明白我的意思,先谢过!
====================================================================================================
现在的经过多次测试发现有这样的问题:
1.select id,a,b,c,d,e,f from [ID] as t where id in (select top 1 id from [ID] where A=t.A and B=t.B)
这段代码显示到了页面.<我看不出错在那里>
2.计算F的结果出错未能算出结果.
出错信息:
Microsoft OLE DB Provider for ODBC Drivers '80040e07'

[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。

\wwwroot\0.asp, line 34
=====================================================================================
ayue222朋友有解决的方法吗?
=====================================================================================
前面的功能已经成功了.
=====================================================================================


感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-20 19:41
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 
---------------------------------------------------------------------------------------------------
select id,a,b,c,d,e,f from [ID] as t where id in (select top 1 id from [ID] where A=t.A and B=t.B)
---------------------------------------------------------------------------------------------------
select * from [ID] as t where id in (select top 1 id from [ID] where A=t.A and B=t.B)
---------------------------------------------------------------------------------------------------

我想问一下在这里二种写法有何不同呢?
本人理解为前者是指定后者是所有,
测试结果几乎一样.

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-08-20 20:07
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
收藏
得分:0 
以下是引用zhongx在2007-8-20 20:07:09的发言:
---------------------------------------------------------------------------------------------------
select id,a,b,c,d,e,f from [ID] as t where id in (select top 1 id from [ID] where A=t.A and B=t.B)
---------------------------------------------------------------------------------------------------
select * from [ID] as t where id in (select top 1 id from [ID] where A=t.A and B=t.B)
---------------------------------------------------------------------------------------------------

我想问一下在这里二种写法有何不同呢?
本人理解为前者是指定后者是所有,
测试结果几乎一样.

这 2句在这里是没有区别的 ... 第一句不过是进行了精确输入而已..

我不明白你说的错误是什么 ... 不过 ...我把第一个查询输出加上了条件判断...也加多了几条数据进行测试 ...貌似没有出现错误,如果你那有错误请说出具体的报错信息.. 下面是关键代码: 数据库0.mdb,表名:ID,表字段:id(自动递增),A,B,C,D,E,F 都为(int)类型

<%
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>ID</td><td>字段A</td><td>字段B</td><td>字段C</td><td>字段D</td><td>字段E</td><td>字段F</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><%=rs("E")%></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>
</tr>
<%
rs.movenext
loop
end if
rs.close:set rs=nothing
%>
</table>

2007-08-21 09:00
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
收藏
得分:0 

今次测试没有错误了,但是不知何解下面这句显示到了页面上:
select * from [ID] as t where id in (select top 1 id from [ID] where A=t.A and B=t.B)
一般来说这句在ASP的 起止符 <% %> 内是不会显示在页面的,
百思不得其解它现在显示在页面了?


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

...偶测试的时候输出的这个SQL语句进行查看 ...把红色代码删除或者屏蔽就好了 ...
2007-08-21 15:46
快速回复:有关统计的问题
数据加载中...
 
   



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

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