| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1261 人关注过本帖
标题:[求助]多表查询且求和
只看楼主 加入收藏
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
结帖率:68.57%
收藏
 问题点数:0 回复次数:7 
[求助]多表查询且求和

老师们:

A表:
姓名 件数 重量
张三 2 5
李四 4 9
.................

B表
姓名 件数 重量
张三 20 50
李四 25 70
..................

C表
姓名 件数 重量
张三 51 106
李四 55 122
..................

现在我希望显示符合查询条件的总和(A、B、C三个表的总和)
姓名 总件数 总重量
张三 73 161
李四 84 201

请问各老师,怎么来实现,先谢了!

搜索更多相关主题的帖子: 李四 张三 重量 姓名 求和 
2007-06-29 12:39
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
select 姓名=a.姓名,总件数=a.件数+b.件数+c.件数,总重量=a.重量+b.重量+c.重量
from a,b,c
where a.姓名=b.姓名 and b.姓名=c.姓名
order by 件数,重量

说明:“select 姓名=a.姓名”也可改为
“select 姓名=b.姓名”或
“select 姓名=c.姓名”,查询结果一样;

查询结果按总件数长升序排序,若有总重量相同的,按总总重量升序排序;

“order by 总件数”等价于“order by 总件数 asc”,排序默认是按升序排列,即asc可省略;若按降序排序,则不能省略:“order by 总件数 desc”;

“order by 总件数,总重量”优先按“总件数”排序,排序不唯一时再按“总重量”排序,交换两个排序量的顺序可改变其排序的优先顺序。

爱我至爱,至死不渝!
2007-06-29 15:15
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
收藏
得分:0 
太感谢!

我试下!

我是农家的孩子,我有农家孩子的本色!
2007-06-29 18:31
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
收藏
得分:0 

老师,运行是错误的,提示是

"Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。
"

代码我是这样写的:
<%
dim zjs,zzl
set rs=Server.CreatObject("ADODB.RecordSet")
sql="select zps=a.件数+b.件数+c.件数,zzl=a.重量+b.重量+c.重量 from a,b,c where order zjs,zzl"
rs.open sql,conn.1,1
%>

显示:<%=rs("zps")%>和<%=rs("zzl")%>

以上的程序运行是错的?请老师告诉我怎么改,太感谢了?


[此贴子已经被作者于2007-6-29 19:08:04编辑过]


我是农家的孩子,我有农家孩子的本色!
2007-06-29 19:04
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
在网上搜索到的ASP错误描述:
ODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表/字段错误或处于编辑状态,或不存在于conn打开的数据库中)

sql="select zps=a.件数+b.件数+c.件数,zzl=a.重量+b.重量+c.重量 from a,b,c where order zjs,zzl"

如果你使用的SQL语句是这句的话,那么很明显,where子句的内容漏了,当然会是SQL语句出错;

还要注意:网页代码中SQL语句里所使用的表名、列名和数据库中的表名、列名是否分别对应;注意换行不要出错;
order by后面的列名应该为select后面所要查询的列名,是按查询结果的列来进行排序,而不是按数据表中的列进行排序;
查询中使用别名的,对结果排序要按该列排序也应该使用别名;

也就是:

“select zps=.... order by zps”为正确;
“select 新姓名=姓名 from a order by 姓名”为错误:查询结果中只有“新姓名”这一列,而不再有“姓名”列;

我是在查询分析器中试的,结果和你在一楼贴出来的一致。
照说在查询分析器中可以的,在程序中也应该是可以的。

爱我至爱,至死不渝!
2007-06-30 00:47
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
收藏
得分:0 

老师:
我调试了很多次,还是运行不了.数据库的具体代码在附件(wyfz.rar).

系统说明:
进入查询页面后,输入查询条件------日期段和员工姓名(日期段请选择6月份前才有数据),查询后得到如下图表:

l2Zt0Bl3.rar (59.4 KB)

[此贴子已经被作者于2007-7-2 12:03:47编辑过]



gtN7pK82.jpg (83.95 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


XCWiKz6E.rar (3.52 KB)

我是农家的孩子,我有农家孩子的本色!
2007-07-02 10:45
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
收藏
得分:0 
老师帮帮忙呀!

我是农家的孩子,我有农家孩子的本色!
2007-07-02 19:26
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
收藏
得分:0 
怎么没老师帮帮忙呀!

我是农家的孩子,我有农家孩子的本色!
2007-07-03 09:04
快速回复:[求助]多表查询且求和
数据加载中...
 
   



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

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