【发布时间】:2015-02-08 11:10:15
【问题描述】:
我正在尝试使用 3 个表编写 JOIN 查询。我需要查询来返回每个用户基于传递给查询的链接值的总和。在我尝试的表结构、所需结果和查询下方添加。
表 1:用户详细信息
| ID | Name | Link |
| 1 | User A | 12 |
| 2 | User B | 12 |
| 3 | User C | 12 |
表 2:保存
|CreatedBy| Amount |
| 3 | 100 |
| 3 | 50 |
| 2 | 75 |
表 3:费用
|CreatedBy| Amount |
| 2 | 20 |
| 1 | 15 |
| 3 | 85 |
通过将链接值传递给查询必须返回每个用户的总计(储蓄+费用)。
结果 1:如果传递链接值 12。
查询结果为
|User Name| Total |
|User A | 15 |
|User C | 235 |
结果 2:如果传递链接值 11。
查询结果为
|User Name| Total |
|User B | 95 |
下面的查询没有返回任何结果。
SELECT
t1.name,
SUM(t2.total_amount+t3.total_amount)
FROM
userdetails t1
LEFT JOIN savings t2
ON t2.created_by=t1.id
LEFT JOIN expense t3
ON t3.created_by=t1.id
WHERE
t1.link=12
AND t1.status=1
AND t2.status=2
AND t3.status=2
GROUP BY
t2.created_by,
t3.created_by
【问题讨论】:
-
不应该是节省减去费用吗?不只是添加它们?
-
我只需要两者的总和(储蓄+费用)=总计
-
链接中没有“11”
-
t2.total_amount + t3.total_amount 。您的储蓄和支出表中没有
total_amount字段 -
@Shantanu 感谢您的帮助