Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ein Aggregat darf nicht in der Setlist einer UPDATE-Anweisung erscheinen

Ich vermute, dass Sie (wie andere bereits darauf hingewiesen haben) bei diesem Update nicht wirklich einen kartesischen Wert haben möchten, daher habe ich der Abfrage eine "ID" hinzugefügt, sodass Sie einige Änderungen vornehmen müssen, aber dies könnte Sie auf den richtigen Weg bringen

;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