表a
编码 名称
1111 aa
2222 bb
3333 cc
4444 dd表b
编码 金额
1111 12.00
2222 36.00表c
编码 金额
3333 10.00
查询出以下结果:
编码 名称 金额1 金额2
1111 aa 12.00 0.00
2222 bb 36.00 0.00
3333 cc 0.00 10.00
4444 dd 0.00 0.00也就是以a表为准,b表、c表没有的显示0
编码 名称
1111 aa
2222 bb
3333 cc
4444 dd表b
编码 金额
1111 12.00
2222 36.00表c
编码 金额
3333 10.00
查询出以下结果:
编码 名称 金额1 金额2
1111 aa 12.00 0.00
2222 bb 36.00 0.00
3333 cc 0.00 10.00
4444 dd 0.00 0.00也就是以a表为准,b表、c表没有的显示0
解决方案 »
- oracle 怎么给整个Sql作为一个别名 然后和其他的表left join
- 关于报表时间维度的问题
- 各位高手看一下这个问题用存储过程可以解决吗?
- 求助,我是初学者,这个表的查询我怎么想都想不通,大家帮帮我,谢谢
- db instanc configured for MTS
- 兄弟们:平常大家遇到的数据库开发觉的很简单,但当查询的数据量大时,是怎么解决这些问题的,欢迎大家探讨现实问题,一起提高自己的能力
- 我还是不明白,这个回显是怎么回事?
- 如何在ORACLE数据库中建立异构数据库链接,如(SQL SEVER2000,FOXPRO)
- 请教有关于Oracle表的修改
- Oracle中字符串格式varchar更改为日期格式date
- 如何将一些句子转换成存储过程
- oracle存储过程的问题
nvl((select b.金额 from b where b.编码 = a.编码),0) 金额1,
nvl((select c.金额 from c where c.编码 = a.编码),0) 金额2
from a
select a.*,
nvl((select b.金额 from b where b.编码 = a.编码),0) 金额1,
nvl((select c.金额 from c where c.编码 = a.编码),0) 金额2
from a--2、left join
select a.* , nvl(b.金额,0) 金额1,nvl(c.金额,0) 金额2
from a left join b on a.编码 = b.编码
left join c on a.编码 = c.编码
From 表A t1, 表B t2, 表C t3
where t1.编码 = t2.编码(+)
and t1.编码 = t3.编码(+);