簡體   English   中英

Mysql:左外連接問題

[英]Mysql : left outer join issue

我有兩個表:
收入(月,金額)
支出(月,額)

我需要為表收入的每個月顯示其金額減去支出金額(如果存在)。
我想我需要在兩個表之間使用左外部聯接,例如

SELECT income.amount - expenditure.amount 
FROM income left outer join expenditure on income.month = expenditure.month

但我不知道該怎么做http://sqlfiddle.com/#!9/7a7d5/1

如果有人可以幫助這個sqlfiddle
謝謝。

我假設如果沒有收入,則應將其視為0,同樣用於支出。

MySQL沒有完整的外部聯接,但是您可以執行類似的操作:

SELECT month, SUM(amount) FROM
    (SELECT month, income AS amount
    FROM income
    UNION
    SELECT month, - expenditure AS amount
    FROM expenditure) a
GROUP BY month;

這將創建兩個表的並集(為簡單起見,支出為負數)。 然后,它僅按月對金額和組進行求和。

示例: http//sqlfiddle.com/#!9 / 7a7d5 / 14

試試這個操作:

SELECT [gross] = ISNULL(income.income - expenditure.expenditure ,0)
FROM income 
left outer join expenditure on income.month = expenditure.month

詢問

select t1.`month`,
coalesce((t1.`income`-t2.`expenditure`),t1.`income`) as Savings
from `income` t1
left join `expenditure` t2
on t1.`month`=t2.`month`
order by t1.`month`;

小提琴演示在這里

暫無
暫無

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

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