左外连接条件 sql
Left outer join with condition sql
有人知道是否有办法进行条件左外连接吗?我有分类帐 tables 与实际和参考部门 table 我想从中分配 BMDIV。
但部门参考 table 包含 LC 编号或 = 'xx'
我想要做的是在 LCTRYNUM、LC 和 DEPTNUM 上将分类帐 table 与部门 table 加入,但在 LC = '**' 的情况下,加入只会是 LCTRYNUM 和 DEPTNUM。
实际分类帐 table
LCTRYNUM
LC
DEPTNUM
Amount
618
40
30813
100
618
50
30813
200
618
60
30813
300
618
10
30813
100
事业部参考资料table
LCTRYNUM
LC
DEPTNUM
BMDIV
618
**
30813
30
618
10
30813
2P
预期的结果是这样
LCTRYNUM
LC
DEPTNUM
Amount
BMDIV
618
40
30813
100
30
618
50
30813
200
30
618
60
30813
300
30
618
10
30813
100
2P
您可以使用两个 left join
,第一个引入直接匹配,第二个用于默认匹配:
select a.*, coalesce(d.bmdiv, d_default.bmdiv) as bmdiv
from actual a left join
divisions d
on a.lc = d.lc left join
divisions d_default
on d_default.lc = '**'
有人知道是否有办法进行条件左外连接吗?我有分类帐 tables 与实际和参考部门 table 我想从中分配 BMDIV。 但部门参考 table 包含 LC 编号或 = 'xx' 我想要做的是在 LCTRYNUM、LC 和 DEPTNUM 上将分类帐 table 与部门 table 加入,但在 LC = '**' 的情况下,加入只会是 LCTRYNUM 和 DEPTNUM。
实际分类帐 table
LCTRYNUM | LC | DEPTNUM | Amount |
---|---|---|---|
618 | 40 | 30813 | 100 |
618 | 50 | 30813 | 200 |
618 | 60 | 30813 | 300 |
618 | 10 | 30813 | 100 |
事业部参考资料table
LCTRYNUM | LC | DEPTNUM | BMDIV |
---|---|---|---|
618 | ** | 30813 | 30 |
618 | 10 | 30813 | 2P |
预期的结果是这样
LCTRYNUM | LC | DEPTNUM | Amount | BMDIV |
---|---|---|---|---|
618 | 40 | 30813 | 100 | 30 |
618 | 50 | 30813 | 200 | 30 |
618 | 60 | 30813 | 300 | 30 |
618 | 10 | 30813 | 100 | 2P |
您可以使用两个 left join
,第一个引入直接匹配,第二个用于默认匹配:
select a.*, coalesce(d.bmdiv, d_default.bmdiv) as bmdiv
from actual a left join
divisions d
on a.lc = d.lc left join
divisions d_default
on d_default.lc = '**'