【发布时间】:2016-10-05 15:38:26
【问题描述】:
我有两张表,一张是cost 表,一张是payment 表,cost 表包含产品的成本和产品名称。
Cost Table
id | cost | name
1 | 100 | A
2 | 200 | B
3 | 200 | A
Payment Table
pid | amount | costID
1 | 10 | 1
2 | 20 | 1
3 | 30 | 2
4 | 50 | 1
现在我必须用相同的name 值对总成本求和,并且还要通过 costID 对总支付金额求和,如下面的查询
totalTable
name | sum(cost) | sum(amount) |
A | 300 | 80 |
B | 200 | 30 |
但是我一直在使用下面的查询来解决这个问题,但我认为我做错了。
SELECT
b.name,
b.sum(cost),
a.sum(amount)
FROM
`Payment Table` a
LEFT JOIN
`Cost Table` b
ON
b.id=a.costID
GROUP by b.name,a.costID
如果有人能帮助我解决我的问题,或者更好地了解如何解决这个问题,我将不胜感激。谢谢你
【问题讨论】:
-
我认为您不需要在
a.costID上进行分组 - 如果您删除它,它会起作用吗? -
加入前需要“求和”。作为成本和付款 ic 之间的一对多连接,导致金额膨胀。
-
名字
A怎么有两个id?