免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1515 | 回复: 7
打印 上一主题 下一主题

求大家帮我写一个sql [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-25 13:46 |只看该作者 |倒序浏览
我有2张表分别是表a和表b
每个表的字段都是相同的A,B,C,D
举例:
表A:      A   B  C   D
            1   1   1   1
            1   1   1   1
            2   2   2   2
            2   2   3   2
---------------------------------
表B:      A   B  C   D
            1   1   1   1
            1   1   1   1
            3   2   2   2
            2   2   2   6
我现在想得到 当2张表字段A,B,C都相同的字段D的和
结果应该如下     A.SUM(D)   B.SUM(D)
                             4                  8
语句应该如何写,谢谢

论坛徽章:
0
2 [报告]
发表于 2006-08-25 13:50 |只看该作者
小弟编程能力很差
写了如下
Select sum(a.D),sum(b.D) from a.b where a.a=b.a and a.b=b.b and a.c=b.c

结果好像不多
好像是表a的1,2行记录分别求了2次和,请大家帮忙

论坛徽章:
0
3 [报告]
发表于 2006-08-25 14:09 |只看该作者
表a的第一, 第二行和表b的第一第二行一样
所以在a和b连接的结果应该是
A B C a.D b.D
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2 2 2 6
所以结果应该是6 10

论坛徽章:
0
4 [报告]
发表于 2006-08-25 14:15 |只看该作者
是的呀
那我如何得到正确的结果呢

论坛徽章:
0
5 [报告]
发表于 2006-08-25 14:17 |只看该作者
对于第一行,第二行,根据你的判断条件,两张表都有重复,所以会计算两次

原帖由 hming2000 于 2006-8-25 13:50 发表
小弟编程能力很差
写了如下
Select sum(a.D),sum(b.D) from a.b where a.a=b.a and a.b=b.b and a.c=b.c

结果好像不多
好像是表a的1,2行记录分别求了2次和,请大家帮忙

论坛徽章:
0
6 [报告]
发表于 2006-08-25 14:18 |只看该作者
这个结果对于你的表数据和sql语句在逻辑上是正确的。

原帖由 hming2000 于 2006-8-25 14:15 发表
是的呀
那我如何得到正确的结果呢

论坛徽章:
0
7 [报告]
发表于 2006-08-25 14:23 |只看该作者
select sum(ta.total_d),sum(tb.total_d)
                  from (select a,b,c,sum(d) total_d from a group by a,b,c) ta,
                          (select a,b,c,sum(d) total_d from b group by a,b,c) tb
                  where ta.a=tb.a and ta.b=tb.b and ta.c=tb.c

论坛徽章:
0
8 [报告]
发表于 2006-08-25 22:35 |只看该作者
高,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP