1

我有以下数据结构:

表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 中完成

4

1 回答 1

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”的字段是一个非常糟糕的主意(保留关键字)

于 2012-09-03T19:50:08.167 回答