小编典典

聚合可能不会出现在UPDATE语句的设置列表中

sql

UPDATE [silverdb01].[dbo].[info] 
SET [FM] = SUM(a.[MONDAY] - b.[QUOTA]) 
FROM  [silverdb01].[dbo].[info] a,  [silverdb01].[dbo].[quota] b 
WHERE a.[WORK_TYPE]='IN' AND a.[NAME]='KUTHAY'

运行此命令时,出现以下错误:

聚合可能不会出现在UPDATE语句的设置列表中。

有任何想法吗?


阅读 226

收藏
2021-05-05

共1个答案

小编典典

我猜(正如其他人所指出的那样),您确实不需要此更新上的笛卡尔坐标,所以我在查询中添加了一个“ id”,因此您将必须进行一些修改,但这可能会使您走上正确的道路

;with temp as (
    select  a.id, SUM(a.pazartesi - b.kota) as newTotal
    from    [asgdb01].[dbo].[info] a join [asgdb01].[dbo].[kota] b 
          on a.id = b.id
    where   a.work_type='in' and a.name='alp' )
update  a
set     fm = t.newTotal
from    [asgdb01].[dbo].[info] a join temp t on a.id = t.id
2021-05-05