mysql - 两个表中两列的总和 - MySQL

标签 mysql

我有三张 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/

相关文章:

php - 从另一个脚本获取用户登录时的表列值

mysql - 无法使用ip地址连接mysql

java - 插入 sql 数据库失败,异常 :java com. microsoft.sqlserver.jdbc.SQLServerException:必须声明标量变量 "@P7@P8"

mysql - 尝试更改 mysql 密码时出错

mysql - 如何计算mysql的24小时时间?

php - 如何在wordpress中搜索和打印数据库?

php - 插入时数组到字符串的转换

mysql - 使用 phpmyadmin 将大型数据库导入 mysql 的简单方法是什么?

mysql - 为什么在添加列时所有行都获得空值?

php - 带 Mysqli 数据和数据选择的 HTML DropDown