0
我有這樣的下面:MYSQL UNION JOIN SUM(量)輸出的兩個結果,而不是一個
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
它工作得很好,但顯示無論是在最上面的一個空行和下面的總和或VIS-A-可見。我試圖限制1,但問題是當第2行中的SUM(數量)輸出,我無法獲取,如果我沒有應用任何限制,它只會獲取SUM(金額)輸出在第1行的結果。我不'不知道什麼是錯過的。請協助。謝謝。
請發佈結果和表中的日期轉儲 –
這些是假外連接。查詢假裝外連接「chart_of_account」和「asset_liability_income_expenditure_tbl」,但在WHERE子句中,您關閉所有不是'FA'的a_l_code,最終擺脫所有外連接記錄(帶有a_l_code null)。所以連接真的是內連接。你加入是爲了將'mainaccount_a_2017.amount'乘以相關'FA'記錄?這看起來很奇怪。 –
擁有「mainaccount_a_2017」和「mainaccount_b_2017」表(甚至在表名中只有一年)就像是一個糟糕的,不好的數據庫設計。這些只是臨時表,你剛剛設置? –