簡體   English   中英

MYSQL UNION JOIN SUM(amount)輸出兩個結果而不是一個

[英]MYSQL UNION JOIN SUM(amount) output two result instead of one

我下面有這個:

SELECT a.* FROM ( SELECT
      asset_liability_income_expenditure_tbl.a_l_code,
      SUM(mainaccount_a_2017.amount), mainaccount_a_2017.dr_cr_action 
      FROM `mainaccount_a_2017` LEFT JOIN chart_of_account 
      ON (
         chart_of_account.joint_account_numbers =
         mainaccount_a_2017.joint_account_number
       ) 
      LEFT JOIN asset_liability_income_expenditure_tbl 
      ON (
         asset_liability_income_expenditure_tbl.a_l_code =
         chart_of_account.account_type
      ) 
WHERE asset_liability_income_expenditure_tbl.a_l_code = 'FA' 
      AND mainaccount_a_2017.dr_cr_action = 'DR' UNION 
SELECT asset_liability_income_expenditure_tbl.a_l_code,
SUM(mainaccount_b_2017.amount), 
mainaccount_b_2017.dr_cr_action 
FROM `mainaccount_b_2017` 
LEFT JOIN chart_of_account ON (
          chart_of_account.joint_account_numbers = 
          mainaccount_b_2017.joint_account_number
      ) 
LEFT JOIN asset_liability_income_expenditure_tbl ON ( 
           asset_liability_income_expenditure_tbl.a_l_code =
           chart_of_account.account_type
      ) 
WHERE asset_liability_income_expenditure_tbl.a_l_code = 'FA' 
      AND mainaccount_b_2017.dr_cr_action = 'DR' 
) AS a

它工作正常,但在頂部顯示一個空行,在其下面顯示或總和。 我嘗試了LIMIT 1,但問題是當第2行中的SUM(amount)輸出時,我無法獲取,如果我不應用任何限制,則僅獲取第1行中其SUM(amount)輸出的結果。不知道缺少了什么。 請協助。 謝謝。

我想到了。 我不得不翻轉一些東西。 結果如下:

SELECT SUM(a) FROM
(
  SELECT SUM(mainaccount_a_2017.amount) 
  AS a FROM `mainaccount_a_2017`
  LEFT JOIN chart_of_account ON (chart_of_account.joint_account_numbers = mainaccount_a_2017.joint_account_number)

  LEFT JOIN asset_liability_income_expenditure_tbl ON (asset_liability_income_expenditure_tbl.a_l_code = chart_of_account.account_type)

  WHERE asset_liability_income_expenditure_tbl.a_l_code = 'FA' 
  AND mainaccount_a_2017.dr_cr_action = 'DR'

  UNION ALL

  SELECT SUM(mainaccount_b_2017.amount) 
  AS a FROM `mainaccount_b_2017`
  LEFT JOIN chart_of_account ON (chart_of_account.joint_account_numbers = mainaccount_b_2017.joint_account_number)

  LEFT JOIN asset_liability_income_expenditure_tbl ON (asset_liability_income_expenditure_tbl.a_l_code = chart_of_account.account_type)

  WHERE asset_liability_income_expenditure_tbl.a_l_code = 'FA' AND mainaccount_b_2017.dr_cr_action = 'DR'
) a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM