Sql 使用sum时,聚合可能不会出现在UPDATE语句的集合列表中

Sql 使用sum时,聚合可能不会出现在UPDATE语句的集合列表中,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有这个密码 update T1 set T1.Column1= (Select SUM(T2.Column2)) FROM T2 WHERE T2.Column2 LIKE '%Building%'; 但在使用SUM函数时,最终会出现以下错误:“聚合可能不会出现在UPDATE语句的集合列表中” 我真正想要查询的是,我有两个表,T1和T2,我喜欢更新值为100的T1(比如“%Building%”函数),使用sum它必须得到T2 Column2的总值,即200(比如“%Building%”函数

我有这个密码

update T1
set T1.Column1= (Select  SUM(T2.Column2))
FROM T2
WHERE T2.Column2 LIKE '%Building%';
但在使用SUM函数时,最终会出现以下错误:“聚合可能不会出现在UPDATE语句的集合列表中”

我真正想要查询的是,我有两个表,T1和T2,我喜欢更新值为100的T1(比如“%Building%”函数),使用sum它必须得到T2 Column2的总值,即200(比如“%Building%”函数)。谢谢你的帮助

T1
Column1  
100    

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

请检查以下查询:

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

您可以提前关闭子查询,因为在
SUM
表达式之后有第二个右括号(
)。它应该是
SELECT SUM(T2.Column2)。。。例如“%Building%”)…谢谢@Larnu没想到会解决这个问题!