0

(選択した基準に基づいて) 1 つのテーブルから行を合計し、結果を別のテーブルに移動するにはどうすればよいですか。

プロジェクト内のコストに関連するテーブルがあります。

テーブル「コスト」:

id| CostName |ID_CostCategory| PlanValue|DoneValue
-------------------------------------------------------
1 | books    |1              |100       |120
2 | flowers  |1              |90        |90
3 | car      |2              |150       |130
4 | gas      |2              |50        |45

各ID_CostCategoryの「DoneValue」の合計を「CostCategories」テーブルに入れたい

テーブル「CostCategories」:

id|name |planned|done
------------------------
1 |other|190    |takes the sum from above table
2 |car  |200    |takes the sum from above table

どうもありがとう

4

2 に答える 2

0
INSERT INTO CostCategories(id,name,planned,done)
SELECT ID_CostCategory, CostName, SUM(PlanValue), SUM(DoneValue)
FROM costs GROUP BY ID_CostCategory, CostName
于 2013-09-04T20:01:39.463 に答える
0

何かが変更されるとすぐに古くなるため、これを保存しませんCostsCostCategories代わりに、ビューを作成します。

CREATE VIEW CostCategoriesSum
AS
SELECT  CostCategories.ID,
        CostCategories.Name,
        SUM(COALESCE(Costs.PlanValue, 0)) AS Planned,
        SUM(COALESCE(Costs.DoneValue, 0)) AS Done
FROM    CostCategories
        LEFT JOIN Costs
            ON Costs.ID_CostCategory = CostCategories.ID
GROUP BY CostCategories.ID, CostCategories.Name;

テーブルを参照する代わりに、ビューを参照すると、Planned合計Doneが常に最新になります。

于 2013-09-04T20:08:25.137 に答える