20
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 ステートメントのセット リストに表示されない場合があります。

何か案は?

4

1 に答える 1

35

(他の人が指摘したように)この更新でデカルトが本当に必要ないので、クエリに「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
于 2013-02-06T21:49:47.523 に答える