首页 > 解决方案 > 使用 sum 时,聚合可能不会出现在 UPDATE 语句的集合列表中

问题描述

我有这个代码

update T1
set T1.Column1= (Select  SUM(T2.Column2))
FROM T2
WHERE T2.Column2 LIKE '%Building%';

但是在使用 SUM 函数时会出现此错误“聚合可能不会出现在 UPDATE 语句的集合列表中”。

我真正想要的查询是我有 2 个表,T1 和 T2,我喜欢更新值为 100 的 T1(使用 LIKE '%Building% 函数),使用 sum 它必须从T2 Column2 为 200(具有 LIKE '%Building% 功能)。感谢您的帮助

T1
Column1  
100    

T2
Column1            Column2
Land               100
Building           50
Building           100
Machinery          50
Building           50

标签: sqlsql-serverstored-procedures

解决方案


请您检查以下查询:

create table #T1
(
Column1 int
)

create table #T2
(
Column1  varchar(500),         
Column2 int
)

insert into #T1
select  100

insert into #T2
select 'Land', 100
union all
select 'Building', 50
union all
select 'Building',100
union all
select 'Machinery', 50
union all
select 'Building', 50   


update #T1 
set Column1 = (Select  SUM(Column2) FROM #T2 WHERE Column1 LIKE '%Building%')

select * from #T1

推荐阅读