2015-02-10 71 views
1

我遇到了我的查詢問題。我正在嘗試更新退出表中的「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號線 子查詢返回的多個值這不是當子查詢遵循=,=,<許可, < =,>,> =或者當子查詢用作表達式時 該語句已被終止。「

不確定爲什麼子查詢返回多個結果。在此先感謝您的幫助。

回答

0

你錯過了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) 
0
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