Postgresql 连接两个表-在两个单独的条件下过滤
我有两张桌子: 表1Postgresql 连接两个表-在两个单独的条件下过滤,postgresql,join,filter,Postgresql,Join,Filter,我有两张桌子: 表1 Customer|Seller Currency|Invoice #|Invoice Currency ABC |USD |123 |MXP 我有第二张桌子,在那里我存储客户的银行账户 表2 Customer | Bank Account | Currency ABC | BANK1 | MXP ABC | BANK2 | INP ABC | BANK3 |
Customer|Seller Currency|Invoice #|Invoice Currency
ABC |USD |123 |MXP
我有第二张桌子,在那里我存储客户的银行账户
表2
Customer | Bank Account | Currency
ABC | BANK1 | MXP
ABC | BANK2 | INP
ABC | BANK3 | USD
我希望连接这两个表,以便在创建仪表板时可以显示以下内容:
如果客户ABC有发票货币的银行账户,则显示该银行账户(在这种情况下,结果为bANK1)
如果客户没有发票货币的银行账户,则显示客户货币的银行账户(在本例中为Bank3
其他任何内容都显示“没有有效的银行帐户”
当我加入我的表格时,它会带来多个记录……我如何才能做到这一点?让我们调用您的两个表格
客户发票
和客户账户
您可以将以下查询与两个LEFT JOIN
一起使用(因此,如果没有银行帐户,我们仍然保留左侧数据,一个GROUP BY
(如果某人在给定货币中有多个银行帐户,我们不会全部显示):
您将获得:
customer | seller_currency | invoice_number | invoice_currency | chosen_bank_account
:------- | :-------------- | -------------: | :--------------- | :------------------
ABC | USD | 123 | MXP | BANK1
客户|卖方|货币|发票|编号|发票|货币|所选|银行|账户
:------- | :-------------- | -------------: | :--------------- | :------------------
ABC |美元| 123 | MXP |银行1
您可以在DBFIDLE上检查整个设置
参考资料: