使用加入更新状态内容

使用加入更新状态内容

问题描述:

我遇到了我的查询问题。我正在尝试更新退出表中的“weighted_avg_2004”列。我想设置该列等于两个值的乘积,一列在avg_2004列中,另一列在year_2004列中(这两列在不同的表中)。使用加入更新状态内容

Update #WeightedPercentChange 
Set weighted_avg_2004 = (SELECT a.avg_2004 * b.year_2004 
FROM #Average_PercentChange a 
LEFT JOIN dbo.AnnualWeights b 
ON a.SIZE = b.size) 

我收到以下错误:! “消息512,级别16,状态1,2号线 子查询返回的多个值这不是当子查询遵循=,=,<许可, < =,>,> =或者当子查询用作表达式时 该语句已被终止。“

不确定为什么子查询返回多个结果。在此先感谢您的帮助。

你错过了SUM

Update #WeightedPercentChange 
Set weighted_avg_2004 = (SELECT SUM(a.avg_2004 * b.year_2004)/SUM(b.year_2004) 
FROM #Average_PercentChange a 
LEFT JOIN dbo.AnnualWeights b 
ON a.SIZE = b.size) 

UPDATE a 
SET a.weighted_avg_2004 = (a.avg_2004 * b.year_2004) 
FROM [#WeightedPercentChange] a LEFT JOIN dbo.AnnualsWeights b ON a.SIZE = b.size