0

いくつかの行から在庫の合計を計算する必要があります。同じ製品が異なる会社に存在するため、製品名ごとにすべての製品の合計/合計を計算する必要があります。これは、達成したい結果です。

ID | Name     | Company | Stock | Total Stock
1  | Product1 | Company1| 10    | 30
2  | Product1 | Company2| 10    | 30
3  | Product1 | Company2| 10    | 30
4  | Product2 | Company1| 10    | 15
5  | Product2 | Company2| 5     | 15
6  | Product3 | Company2| 5     | 5
7  | Product4 | Company1| 6     | 10
8  | Product4 | Company2| 4     | 10

など...合計在庫は、Name = "Product1"の製品からのSelectSUM(Stock)の合計 です。この結果を保存するにはどうすればよいですか?トリガーまたはプロシージャを使用する必要がありますか?SQLの基本的な知識があります

これは、30分ごと、または行が更新されるたびに実行する必要があります。

製品テーブルには約40.000の製品があります。

4

1 に答える 1

2
SELECT  a.*, b.totalStock
FROM    tableName a
        INNER JOIN
        (
            SELECT Name, SUM(Stock) totalStock
            FROM tableName
            GROUP BY Name
        ) b on a.name = b.name
-- WHERE a.Name = 'Product1'

SQLFiddleデモ

IDPS:の代わりに使用する必要がありますName

于 2012-10-26T00:08:10.537 に答える