表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

解决方案 »

  1.   

    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.   

    --1、子查询
    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.编码
      

  3.   

    select t1.编码, t1.名称, nvl(t2.金额, 0), nvl(t3.金额, 0)
      From 表A t1, 表B t2, 表C t3
     where t1.编码 = t2.编码(+)
       and t1.编码 = t3.编码(+);