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