DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hfh9801
今日帖子: 0
在线用户: 3
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 yeeyee52 (yeeyee52) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 15:40:42
标题:
简单 SQL 语句,几列合并问题 浏览:1330
加入我的收藏
楼主: 表 A:
ID  Name  Amount
1   A     1
2   B     2
3   C     3
表B
ID  Name  Amount
1   A     1
2   A     4
3   B     5
4   D     6
要得到结果:
    Name  Amount
    A     6
    B     7
    C     3
    D     6
----------------------------------------------
-
作者:
男 ddzhouqian (007) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 16:11:21
1楼: 我支持!
----------------------------------------------
-按此在新窗口浏览图片
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 16:19:41
1楼: 一个笨方法,应该还有更好的语句。
select s1.name, ((select sum(amount) from t1 where name = s1.name)+(select sum(amount) from t2 where name = s1.name)) as amount from t1 s1 group by name

建议列名不要使用保留字name


----------------------------------------------
按此在新窗口浏览图片
=^@^=
作者:
男 yeeyee52 (yeeyee52) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 16:37:29
2楼: 1楼:不好意思,问题问错了!
问题如下:
表 A:
ID  Name  Amount
1   A     1
2   B     2
3   C     3
表B
ID  Name  Amount
1   A     1
2   A     4
3   B     5
4   D     6
要得到结果:
    Name  A.Amount  B.Amount
    A     1         5   (1+4)
    B     2         5
    C     3       
    D               6
如果用以下 SQL 语句,
select A.name,A1.Amount,A2.Amount
        from(  select name  from A1 Group By Name
         union all
         select name  from A2 Group By Name
            )A 
LEFT JOIN A1 ON A.Name=A1.Name 
LEFT JOIN A2 ON A.Name=A2.Name
Group By A.name ,A1.Amount,A2.Amount
得到的错误答案如下:
Name  Amount  Amount
A     1       1
A     1       4
B     2       5
C     3       Null
D     Null    6
----------------------------------------------
-
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 17:00:50
3楼: 还是这个笨方法,应该还有更好的语句。
select s1.name, (select sum(amount) from t1 where name = s1.name) as Aamount, (select sum(amount) from t2 where name = s1.name) as Bamount from t1 s1 group by name

----------------------------------------------
按此在新窗口浏览图片
=^@^=
作者:
男 power_source (power) ★☆☆☆☆ -
盒子活跃会员
2004/3/25 18:03:09
4楼: SELECT t1.cname, sum(t1.amount)+sum(t2.amount) AS amount
FROM t1, t2
WHERE t1.cname=t2.cname
GROUP BY t1.cname;

----------------------------------------------
我真的不会!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行68.35938毫秒 RSS