基于GROUP BY和SUM更新表时出现select关键字语法错误
问题解决:SQL语法错误及修正方案
错误原因
你写的SQL语句中UPDATE和SELECT直接拼接的语法不符合SQL规范,UPDATE用于修改表数据,而分组查询是独立的读取操作,不能直接这样组合使用,因此触发语法错误。
解决方案
根据你的实际需求,分两种情况处理:
情况1:仅需查看分组求和结果
如果不需要修改临时表,只是想获取分组后的求和数据,直接去掉UPDATE语句即可:
select Name, Line, Type, SUM(Value) as Sum_Value from #testTempTbl4 group by Name, Line, Type;
情况2:需将求和结果更新到临时表
如果临时表#testTempTbl4已有Sum_Value字段,需要把分组求和的值更新到该字段中,可以使用CTE(公共表表达式)结合UPDATE的方式:
-- 先计算分组求和数据 WITH GroupedData AS ( SELECT Name, Line, Type, SUM(Value) AS Sum_Value FROM #testTempTbl4 GROUP BY Name, Line, Type ) -- 关联原表更新Sum_Value字段 UPDATE t SET t.Sum_Value = gd.Sum_Value FROM #testTempTbl4 t INNER JOIN GroupedData gd ON t.Name = gd.Name AND t.Line = gd.Line AND t.Type = gd.Type; -- 更新完成后查询结果 SELECT Name, Line, Type, Sum_Value FROM #testTempTbl4;
内容的提问来源于stack exchange,提问作者Drop05
相关产品推荐
相关产品推荐

