我有以下数据结构:
表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中完成
答案 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”的字段是个坏主意