聚合可能不会出现在 UPDATE 语句的集合列表中 [英] An aggregate may not appear in the set list of an UPDATE statement

查看:39
本文介绍了聚合可能不会出现在 UPDATE 语句的集合列表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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 语句的集合列表中.

有什么想法吗?

推荐答案

我猜(正如其他人指出的那样)你并不真的想要这个更新的笛卡尔,所以我在查询中添加了一个id"所以你必须做一些修改,但这可能会让你走上正确的道路

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

这篇关于聚合可能不会出现在 UPDATE 语句的集合列表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆