A表:
PSPID,MONEY
001 200
002 200
004 400B表:
PSPID,MONEY
001 300
002 400
009 600C表:
PSPID,MONEY
001 900
005 300
002 800
想求得这样一个结果
PSPID,MONEY
001 (和)
002 (和)
就是几张表求和
MONEY的类型是decimal我是这样写的:
select (a.money+b.money+c.money) as moeny,a.PSPID
from A a
left join B b on a.PSPID=b.PSPID
left join C c on b.PSPID=c.PSPID 但结果总是这样显示
PSPID MOENY
001 NULL
....请问前辈们?是什么原因呢?
PSPID,MONEY
001 200
002 200
004 400B表:
PSPID,MONEY
001 300
002 400
009 600C表:
PSPID,MONEY
001 900
005 300
002 800
想求得这样一个结果
PSPID,MONEY
001 (和)
002 (和)
就是几张表求和
MONEY的类型是decimal我是这样写的:
select (a.money+b.money+c.money) as moeny,a.PSPID
from A a
left join B b on a.PSPID=b.PSPID
left join C c on b.PSPID=c.PSPID 但结果总是这样显示
PSPID MOENY
001 NULL
....请问前辈们?是什么原因呢?
解决方案 »
- java邮件发送老失败!
- eclipse如何配置jboss7.1。1啊
- 关于JDBC连接到sqlserver2005数据库的
- 发送SOAP数据包的时候 的一个异常,希望高手解决
- JVM参数调优问题
- JSF中tree2组件,如何用程序控制展开某个结点。好象没有相关的方法可用?
- 刚学完Struts想学Spring和Hibernate给我点建议
- 请问如何将这段代码改到EJBTESTCLIENT中?
- 今天遇见一道面试改错题,,关于接口中的方法的。。。
- java spring mvc 整合mybatis 启动项目异常 求解决方法?
- java.sql.SQLException: 不支持的特性
- struts2 cookie 自动登陆
所以要判断一下是否为null,为null的设置成0
oracle数据库的话,可以使用nvl(a.money, 0) + nvl(b.money, 0) + nvl(c.money, 0)
其他数据库看看有没有相应的函数,没有的话就使用 (case when a.meney is null then 0 else a.money end) + (case when b.meney is null then 0 else b.money end) + (case when c.meney is null then 0 else c.money end)
试试看吧
select A.PSPID,(A.money+isnull(B.money,0)+isnull(C.money,0)) sum
from A
left join B on A.PSPID=B.PSPID
left join C on A.PSPID=C.PSPID
select d.pspid,sum(d.money) as money from
(select isnull(a.money,0) as money,a.PSPID
from A a
union all
select isnull(b.money,0) as money,b.PSPID
from B b
union all
select isnull(c.money,0) as money,c.PSPID
from C c) as d
group by d.pspid