你可以将select 结果当成一个派生表与A表关联更新就可以了
类似如下
update A set 列名 = B.列名 from (select 编码,count(*)as 列名1,SUM(CASE WHEN 条件 THEN 1 ELSE 0 END) AS 列名 from c表 group by 编码) as B where A.编号 = B.编号
注意:上面的A表不能取别名,必须写的是表明.字段名
例子:
UPDATE jd_DeptPlanTaskExecute
SET TaskName = B.TaskName,TaskType = B.TaskType,DutyPeople = B.DutyPeople,Start = B.Start,Finish = B.Finish,Duration = B.Duration
FROM (
SELECT z.ID AS ID, y.TaskName AS TaskName, y.TaskType AS TaskType, x.UserID AS DutyPeople,y.Start AS Start, y.Finish AS Finish, y.Duration AS Duration FROM jd_DeptPlanTaskExecute z LEFT JOIN jd_ProjectPlanTaskExecute y ON z.RefID = y.ID LEFT JOIN jd_ProjectPTRelatedUserExecute x ON x.UserType = 1 AND x.TaskID = y.ID WHERE z.PlanID = NEWID() AND z.IsTargetTask = 1 AND z.TaskOriginType = 1 AND NOT (z.DutyPeople<>x.UserID AND z.DutyDept<>x.OwnerDeptID) AND y.IsEnd = 1
) AS B
WHERE jd_DeptPlanTaskExecute.ID = B.ID