Rom*_*ias 1 sql t-sql sql-server aggregate-functions sql-server-2008
我有两个类似布局的表,包括INCOME和EXPENSES.该id列是客户ID.
我需要一个客户TOTAL AMOUNT的结果,总结收入和支出.
Table: Income
| id | amountIN|
+--------------+
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
Table: Expenses
| id | amountOUT|
+---------------+
| 1 | -x |
| 4 | -z |
Run Code Online (Sandbox Code Playgroud)
我的问题是,有些客户只有开支,有些只是收入...所以无法提前知道我需要做的事情 LEFT or RIGHT JOIN.
在上面的例子中,RIGHT JOIN可以解决这个问题,但是如果情况被颠倒(Expenses表上有更多的客户)它就不起作用了.
Expected Result
| id | TotalAmount|
+--------------+
| 1 | a - x |
| 2 | b |
| 3 | c |
| 4 | d - z |
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
小智 6
select id, SUM(Amount)
from
(
select id, amountin as Amount
from Income
union all
select id, amountout as Amount
from Expense
) a
group by id
Run Code Online (Sandbox Code Playgroud)