在SQL中从选择语句更新到另一个表

时间:2019-07-12 01:55:18

标签: sql-update

我有一个选择查询,并且工作正常。现在,我要在另一个表中更新此查询的输出。

问题是-由选择查询输出,聚合了一些东西,我想保留在另一个表中。我该怎么办?

SELECT  
    CostID as CostID,
    SUM(Budget) as Budget,
    SUM(TD) as TD,
    SUM(Forecast) as Forecast,

FROM    
    A

GROUP BY 

    TD,
    Forecast,
    CostID,
    Cost,

)

我要更新CostIDBudget的总和,TD的总和,Forecast在另一个表中。

1 个答案:

答案 0 :(得分:1)

另一个表中是否有键,您可以在其中联接上面的select语句?

如果有密钥,则只需编写一条更新语句:

    UPDATE        SOURCE_TABLE
    SET           SOURCE_TABLE.Cost_ID = NEW_QUERY.Cost_ID
                  SOURCE_TABLE.Budget = NEW_QUERY.Budget
                  SOURCE_TABLE.TD = NEW_QUERY.TD
                  SOURCE_TABLE.Forecast = NEW_QUERY.Forecast
    FROM          SOURCE_TABLE
    INNER JOIN
    (
        SELECT        CostID as CostID,
                      SUM(Budget) as Budget,
                      SUM(TD) as TD,
                      SUM(Forecast) as Forecast
        FROM          A
        GROUP BY      TD,
                      Forecast,
                      CostID,
                      Cost
    )       AS NEW_QUERY
    ON            SOURCE_TABLE.joining_key = NEW_QUERY.joining_key