【问题标题】:Re-writing this mysql Statement重写这个mysql语句
【发布时间】:2017-03-19 12:25:34
【问题描述】:

我正在尝试使用连接(内部或连接)将另一个表中的两个字段添加到此语句中。我怎样才能写得最好? 我只按照要求添加了相关表格link Desired Result | a_l_code | dr_cr_code_inc | |----------|-------------------| | FA | DR |

select B.joint_account_numbers,
    B.account_title,
    SUM(case when A.dr_cr_action = 'CR' then A.amount * - 1 else A.amount end) as net_reduction
from (
    select A.joint_account_number,
        A.dr_cr_action,
        A.amount
    from mainaccount_a_2017 A

    union all

    select B.joint_account_number,
        B.dr_cr_action,
        B.amount
    from mainaccount_b_2017 B
    ) as A
inner join chart_of_account B on A.joint_account_number = B.joint_account_numbers
group by B.joint_account_numbers;

【问题讨论】:

  • 对我来说看起来不错。有什么问题?
  • @GurV 是的,这没关系,但我的挑战是这个。我有一个名为 asset_liability_income_expenditure_tbl 的表,其中包含这些字段 a_l_codedr_cr_code_inc。如何将其添加到语句中?
  • 在哪里添加?这些表有什么关系?我建议你提供一些示例数据和预期的输出来解释你想要的结果。
  • @AderogbaOtunla 。 . .您应该提出另一个问题,并包括对相应表格的引用,以及示例数据和所需的结果。
  • @GurV 示例数据和截图link

标签: mysql join case inner-join


【解决方案1】:
Figured it out!    

    select B.joint_account_numbers,
    B.account_title, C.a_l_code, C.dr_cr_code_inc,
    SUM(case when A.dr_cr_action = 'CR' then A.amount * - 1 else A.amount end) as net_reduction
    from (
    select A.joint_account_number,
        A.dr_cr_action,
        A.amount
    from mainaccount_a_2017 A

    union all

    select B.joint_account_number,
        B.dr_cr_action,
        B.amount
    from mainaccount_b_2017 B
    ) as A
    inner join chart_of_account B on A.joint_account_number = B.joint_account_numbers
    inner join asset_liability_income_expenditure_tbl C on B.account_type = C.a_l_code
    group by B.joint_account_numbers;`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2011-02-14
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多