我有三个表:
Table1: Salary
Fields: ID,Account_Num,Amount
Table2: Other_Income
Fields: ID,Account_Num,Amount
Table3: Expenses
Fields: ID,Account_Num,Amount
从上面的表中,如何编写一个返回结果的查询,列出这些表中的所有帐户,并显示这些表中每个帐户的余额。
结果应显示Account_num、薪水、Other_Income、费用、
余额
(balance=Salary.amount+Other_Income.amount-expenses.amount
)
这三个表可能包含一些不同的帐号。
这个问题我想了很久,尝试过 union 和 join 但还是不行。
有人展示/指导我吗?
最佳答案
我对以下查询有一些运气。本质上,我将 Salary、Other_Income 和 Expenses 表中的所有交易合并到一个名为合并的临时表中,然后使用 group by 对所有交易进行求和!
select Account_Num, sum(Amount)
from (
select Account_Num, Amount from Salary union
select Account_Num, Amount from Other_Income union
select Account_Num, -Amount from Expenses
) as Combined
group by Account_Num;
关于MYSQL:如何返回三个表的查询计算结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25338215/