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没想到会解决这个问题!