簡體   English   中英

MYSQL:如何從三個表返回查詢計算結果?

[英]MYSQL: How to return query calculation result from three tables?

我有三個表:

Table1: Salary
Fields: ID,Account_Num,Amount

Table2: Other_Income
Fields: ID,Account_Num,Amount

Table3: Expenses
Fields: ID,Account_Num,Amount

從上面的表格中,如何編寫查詢以返回結果,列出這些表格中的所有帳戶,並顯示這些表格中每個帳戶的余額。

結果應顯示Account_num,Salary,Other_Income,Expenses, balancebalance=Salary.amount+Other_Income.amount-expenses.amount

這三個表可能包含一些不同的帳號。

我一直在想這個很久了,嘗試過加入並加入,但仍然做不到。

有人向我展示/引導我嗎?

我對以下查詢有好運。 本質上,我將Salary,Other_Income和Expenses表中的所有交易合並到一個名為Combine的臨時表中,然后使用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;

如果每個帳戶都有薪水,以下查詢可能會有所幫助。

select  Account_Num,(total-d.Amount) as final_amount ( select Account_Num, ifnull(a.Amount,0)+ifnull(b.Amount,0) as total from Salary a
   left join Other_Income b on a.Account_Num=b.Account_Num ) c
   join Expenses d on c.Account_Num=d.Account_Num 
    SELECT Sal.`Account_Num`, sal.`Amount` AS Salary, ot_in.`Amount` AS ExtraIncome , exp.`Amount` AS expenses, (sal.`Amount`+ot_in.`Amount`-exp.`Amount`) As Balance FROM Salary AS Sal INNER JOIN Other_income AS ot_in ON Sal.`Account_Num` = ot_in.`Acount_num` INNER JOIN Expenses AS exp ON Sal.`Account_Num` = ex.`Account_Num`   

在這里,您要從這三個表中獲得通用帳號並從每個表中提取對應的金額,然后將表中的三個表連接起來,並使用給定的公式從收入中減去支出來計算剩余余額。我希望這會有所幫助。

暫無
暫無

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

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