我有三张 table
t1
CustId Name
1 XYZ
2 PQR
t2
CustId Income
1 100
1 200
2 50
2 100
t3
CustId Expense
1 50
1 70
2 30
2 40
我需要运行一个查询,得到以下结果
CustId Total Income Total Expense
1 300 120
2 150 70
我尝试了正常的 SUM 和 Group By 但结果与预期有很大不同...
我尝试的查询是
SELECT t1.custid, SUM(t2.Income), SUM(t3.Expense) FROM t1
LEFT JOIN t2 ON t1.custId = t2.CustId
LEFT JOIN t3 ON t1.CustId = t3.CustId
GROUP BY t1.CustId
您将不胜感激的任何帮助......
最佳答案
尝试以下查询。
SELECT t1.CustID, IFNULL(tbl1.Income,0) AS 'TotalIncome', IFNULL(tbl2.Expenses,0) AS 'TotalExpenses'
FROM t1
LEFT JOIN (SELECT t2.CustID,SUM(Income) AS 'Income' FROM t2 GROUP BY t2.CustID) tbl1
ON t1.CustID = tbl1.CustID
LEFT JOIN (SELECT t3.CustID,SUM(Expenses) AS 'Expenses' FROM t3 GROUP BY t3.CustID) tbl2
ON t1.CustID = tbl2.CustID;
SQL fiddle :http://sqlfiddle.com/#!9/ad05d/8
关于mysql - 两个表中两列的总和 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29002886/