【问题标题】:Left outer join with condition sql带条件sql的左外连接
【发布时间】:2021-08-26 16:21:17
【问题描述】:

有人知道是否有办法进行有条件的左外连接吗?我有带有实际值的分类帐表和要从中分配 BMDIV 的参考部门表。 但部门参考表包含 LC 编号或 = 'xx' 我想要做的是将分类帐表与 LCTRYNUM、LC 和 DEPTNUM 上的部门表连接,但在 LC = '**' 的情况下,连接将只有 LCTRYNUM 和 DEPTNUM。

总账明细表

LCTRYNUM LC DEPTNUM Amount
618 40 30813 100
618 50 30813 200
618 60 30813 300
618 10 30813 100

事业部参考表

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

【问题讨论】:

    标签: sql db2


    【解决方案1】:

    您可以使用两个left joins,第一个用于引入直接匹配,第二个用于默认匹配:

    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 = '**'
    

    【讨论】:

    • 谢谢戈登。这个解决方案正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2015-05-13
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多