扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
左连接问题
有3张表,A与B是主子表,通过partcode相连接,C表通过cgid与B表左连接,可是A表怎么办呢?
例如:
A表
aid partcode status
1 001 70
2 002 10
3 003 50
B表
bid partcode cgid price
1 001 b001 2.2
2 002 b002 3.0
3 003 b003 1.0
C表
cid cgid qty
1 b001 20
2 b002 10
3 b003 30
4 b004 40
想实现的结果为
cgid price*qty
b001 44(因为status='70')
b002 0 (因为status != '70')
b003 0 (因为status != '70')
b004 0 (因为status != '70')
select b.cgid , b.price * c.qty from a , b, c where a.partcode = b.partcode and b.cgid = c.cgid and a.status = '70'
union all
select b.cgid , 0 from a , b, c where a.partcode = b.partcode and b.cgid = c.cgid and a.status <> '70'
select c.cgid,nvl(b.price*c.qty,0)
from a join b
on a.partcode=b.partcode and a.status=70
right join c on b.cgid=c.cgid
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者