【问题标题】:Update with aggregate function SUM使用聚合函数 SUM 更新
【发布时间】:2016-01-19 09:41:30
【问题描述】:

我的以下 SQL 语句运行良好:

SELECT  SUM(IIF(srsFromStock, srsAmount, 0)), srvID
FROM tblServices AS S INNER JOIN tblServicesSub AS SS ON S.srvID =
SS.srssrvID 
GROUP BY srvID

我想将此选择转换为更新,但我没能做到:

UPDATE tblServices AS S INNER JOIN tblServicesSub AS SS ON S.srvID =
SS.srssrvID  SET srvSumFromStock = SUM(IIF(srsFromStock, srsAmount,
0)) GROUP BY srvID

发生了什么,我该如何解决?

【问题讨论】:

    标签: sql ms-access ms-access-2010 ms-access-2007 aggregate-functions


    【解决方案1】:

    您无法使用聚合值进行更新。如果我遇到这种情况,我会使用表变量或临时表来保存聚合结果,然后加入表并更新它们。是这样的:

       DECLARE @tempTbl TABLE (srssrvID INT,aggregate_sum DECIMAL(18,4))
       INSERT INTO @tempTbl SELECT srssrvID,SUM(IIF(srsFromStock, srsAmount, 0)) FROM tblServicesSub GROUP BY srssrvID
       UPDATE tblServices INNER JOIN @tempTbl ON srssrvID=srvID
       SET srvSumFromStock=aggregate_sum
    

    【讨论】:

      猜你喜欢
      • 2011-11-13
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多