Sql SUM超过了分组元素的产品

时间:2012-09-03 19:47:35

标签: mysql sql

我有以下数据结构:

表1(群组):

ID  | Group
=============
1   | Sample
2   | Data

表2(项目):

ID  | GroupID | Cost | Amount
==============================
 1  |       1 |   1  | 12
 2  |       1 |   7  | 15
 3  |       1 |   3  |  8
 4  |       2 |   2  | 12

并希望以下(查询)结果

groups.ID | groups.Name | total
        1 | Sample      | 141
        2 | Data        |  24

总计是组中所有项目的成本和金额的总和,即第1组:1*12+7*15+3*8=141

我猜我必须要用

SELECT g.ID, g.Group, SUM(Products) 
FROM groups AS g, items AS i 
WHERE g.ID=i.GroupID 
GROUP BY i.GroupID

但不知道到底是什么。 在带有循环的客户端软件中执行iit是没有问题的,但我很好奇(并且确定)这可以在(我的)Sql中完成

1 个答案:

答案 0 :(得分:2)

SELECT g.ID as ID, g.Group as Name, SUM(i.Cost * i.Amount) as total
FROM groups g
INNER JOIN items i ON i.GroupID = g.ID
GROUP BY g.Group, g.ID

在SQL(保留关键字)

中有一个名为“Group”的字段是个坏主意