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

Kut*_*müş 18 sql sql-server

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'
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到以下错误:

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

有任何想法吗?

Lan*_*nce 30

我猜测(正如其他人已经指出的那样)你真的不想在这次更新中使用笛卡尔,所以我在查询中添加了一个"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
Run Code Online (Sandbox Code Playgroud)