标题:关于从2张表里求2个列之和,再求2个列之和的差的问题
只看楼主
lrvinghu
Rank: 2
等 级:新手上路
威 望:4
帖 子:171
专家分:0
注 册:2006-4-12
得分:0 
select sum(dd.t1) from (SELECT SUM(sr) AS t1 from b2 union select -sum(zc) from b3) dd
试试这个看看

这个得到的值有可能是负的

[此贴子已经被作者于2006-5-24 16:31:13编辑过]


2006-05-24 16:16
lrvinghu
Rank: 2
等 级:新手上路
威 望:4
帖 子:171
专家分:0
注 册:2006-4-12
得分:0 

如果想显示t1,t2则可这样写(构建了临时表)
SELECT sum(sr) as t1, num=identity(int,1,1) into cc from b2
SELECT sum(zc) as t2, num=identity(int,1,1) into dd from b3
select t1,t2,t1-t2 from cc,dd
drop table cc,dd


2006-05-24 16:33
jokey
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-23
得分:0 

以上很多出错的原因是,表与表有进行自动连接了,这样得到的结果表不符原题。题目的内在意思是要求行的重叠,而不是连接(导致横向发展,自动添加了其他数据)。

b2
sr zc id
80 50 001
70 60 002
72 60 003
b3
sr zc id
80 50 001

要得到

80 50 001
70 60 002
72 60 003
80 50 001
确得到
sr zc id sr zc id

80 50 001 80 50 001
70 60 002 80 50 001
72 60 003 80 50 001

所以应该用到union
假如创建一临时表table(sr,zc)

insert into table

select sr,zc from b2

union

select sr,zc from b3

select sum(sr),sum(zc),sum(sr)-sum(zc) from table

现在应该就不回出错了。


猪猪最可爱了,我选择我猪猪.
2006-05-24 22:10
rayc
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-4-24
得分:0 

楼主没说话了,不知道还行不行,不过得感谢JOKEY和其他朋友的热心回答!


2006-05-25 10:24
jokey
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-23
得分:0 
呵呵,

猪猪最可爱了,我选择我猪猪.
2006-05-28 17:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-66312-1-1.html




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

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