[英]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;
現在,您可以引用該視圖,而不必引用該表,並且“ Planned
和Done
總數將始終是最新的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.