【发布时间】:2016-10-20 19:49:44
【问题描述】:
我知道这个问题可能已经得到解答,但我遇到的许多示例都涉及使用 INNER JOIN 将数据从一个表传输到另一个表,而我的情况有点不同。
基本上我想要做的就是把这个 SELECT 语句变成一个 Update 语句。
SELECT
SR, 100. * Cast(Round(AVG(Three_1 + Three_2 + Three_3 + Three_4 + Three_5 + Three_6 + Three_7 + Five_1 + Six_1 + Six_3) / 38,0) as int)
FROM
MainDB
WHERE
Ctype = 'Call'
GROUP BY
SR
我能够成功计算我的一些列的百分比,然后我想用该信息更新列。我的第一次尝试是这样的
UPDATE QAMainDB
SET TCX_score = 100. * avg(three_1 + Three_2 + Three_3 + Three_4 + Three_5 + Three_6 + Three_7 + Five_1 + Six_1 + Six_3) / 38
我得到了错误:
聚合可能不会出现在 UPDATE 语句的集合列表中。
在做了更多的尝试和错误之后,我尝试了这种方法来声明来自 Stack 上一个示例的变量。
Declare @Result Decimal = 0
SET @Result = 100. * Cast(round(avg(three_1 + Three_2 + Three_3 + Three_4 + Three_5 + Three_6 + Three_7 + Five_1 + Six_1 + Six_3) / 38,0) as int)
UPDATE QAMainDB
SET TCX_score = @Result
WHERE Ctype = 'Call'
但它失败了,我想知道你们中的任何人是否可以通过引导我走向正确的方向来帮助我。我对 SQL 很陌生,所以请多多包涵。
感谢您的宝贵时间。
【问题讨论】:
标签: sql-server tsql aggregate