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

totalは、グループ内のすべてのアイテムのコストと金額の積の合計です。つまり、グループ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を実行することは問題ありませんが、これが(my)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(予約キーワード)ではかなり悪い考えです。

于 2012-09-03T19:50:08.167 に答える