[英]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;
這將創建兩個表的並集(為簡單起見,支出為負數)。 然后,它僅按月對金額和組進行求和。
試試這個操作:
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.