db2 带有条件sql的左外连接

hgtggwj0  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(294)

有没有人知道是否有方法可以进行条件左外部连接?我有一些带有实际值的分类帐表和引用部门表,我想从中分配BMDIV。但是部门引用表包含LC编号或= 'xx'。我想做的是在LCTRYNUM、LC和DEPTNUM上连接分类帐表和部门表,但是在LC = '**'的情况下,连接将仅是LCTRYNUM和DEPTNUM。

分类帐合计表

| 对数|液相色谱|部门编号|金额|
| - -|- -|- -|- -|
| 六一八|四十个|小行星30813| 100个|
| 六一八|五十个|小行星30813|二百个|
| 六一八|六十个|小行星30813|三百个|
| 六一八|10个|小行星30813| 100个|

事业部参照表

| 对数|液相色谱|部门编号|骨髓瘤IV|
| - -|- -|- -|- -|
| 六一八|第二次会议|小行星30813| 30个|
| 六一八|10个|小行星30813|双路|

预期结果如下

| 对数|液相色谱|部门编号|金额|骨髓瘤IV|
| - -|- -|- -|- -|- -|
| 六一八|四十个|小行星30813| 100个|30个|
| 六一八|五十个|小行星30813|二百个|30个|
| 六一八|六十个|小行星30813|三百个|30个|
| 六一八|10个|小行星30813| 100个|双路|

hgqdbh6s

hgqdbh6s1#

您可以使用两个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 = '**'

相关问题