总体上把以下的数据库中的这些字段读出并显示在页面:
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 的数全部相加后一并显示。
F值的和的显示不知道是这么显示法 .... 能不能用具体的 数据例子说明一下...
<%
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编辑过]
看你现在的写法,我知道你已完全明白我的意思,先谢过!
====================================================================================================
现在的经过多次测试发现有这样的问题:
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朋友有解决的方法吗?
=====================================================================================
前面的功能已经成功了.
=====================================================================================
这 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>