An aggregate may not appear in the set list of an UPDATE statement

前端 未结 1 1780
北荒
北荒 2020-12-10 11:09
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\         


        
1条回答
  •  失恋的感觉
    2020-12-10 11:39

    I am guessing that (as other's have pointed out) you don't really want a cartesian on this update so I have added an "id" to the query so you will have to do some modification but this might get you on the right path

    ;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
    

    0 讨论(0)
提交回复
热议问题