哪位高手帮我写几个语句:表3包含表1中的所有人,不在表2中的人消费都是0,
             表1  姓名     创收
                    a       100
                  b       200
                  c       300
          表2     姓名      消费
                     a        10
                  b        20
现在想得到一个结果   姓名     创收    消费
                     a      100     10
                  b       200     20
                  c       300     0
请句语句怎么写啊

解决方案 »

  1.   

       select tb1.姓名,tb1.创收, nvl2(tb2.消费,tb2.消费,0) "消费"
                       from tb11 
                      left outer join tb22 on tb1.姓名=tb2.name
                   
      

  2.   

    会不会出现表1中有人没有创收纪录,在表2中却有消费纪录?
    如果是这样的话,那楼上的语句就要改了,否则的话,就按楼上的吧
    不过可以写的容易看些
    select tb1.姓名,tb1.创收, nvl2(tb2.消费,tb2.消费,0) "消费" 
                       from tb11,tb22
    where  tb1.姓名=tb2.name(+)这样写法比left outer join 容易看些 
      

  3.   

     表1  姓名     创收 
                        a       100 
                      b       200 
                      c       300 
              表2     姓名      消费 
                         a        10 
                      b        20 
    -->   姓名     创收    消费 
                         a      100     10 
                      b       200     20 
                      c       300     0 ------
    ============
    select 姓名,创收,(select nvl(消费,0) from 表2 where 姓名=t.姓名) from 表1 t