簡體   English   中英

對一個表中的行求和,然后將其移至另一表

[英]sum rows from one table and move it to another table

如何對一個表中的行求和(基於選定的critiria)並將結果移至另一表。

我有一個與項目內成本相關的表:

表“費用”:

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

非常感謝

INSERT INTO CostCategories(id,name,planned,done)
SELECT ID_CostCategory, CostName, SUM(PlanValue), SUM(DoneValue)
FROM costs GROUP BY ID_CostCategory, CostName

我不會存儲它,因為一旦Costs發生任何變化,那么CostCategories將過時,相反,我將創建一個視圖,例如:

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;

現在,您可以引用該視圖,而不必引用該表,並且“ PlannedDone總數將始終是最新的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM