Sql-Server-2008-R2
執行 Sum In Update 語句
我正在嘗試執行此更新語句,但它一直給我錯誤
(3 行受影響)
消息 157,級別 15,狀態 1,第 9 行
聚合可能不會出現在 UPDATE 語句的集合列表中。
為了能夠將總和添加到第二個欄位,我需要做什麼 diff ?
Create Table #ABCD ( time1 decimal(16,4) ,time2 decimal(16,4) ) Insert Into #ABCD(time1) Values ('12.01'), ('13.04'), ('22.22') Update #ABCD SET time2 = SUM(time1/60/60)
一種方法是計算 CTE 內的聚合(我上個月在部落格上寫過這個):
;WITH CTE AS ( SELECT time1, time2, t2 = SUM(time1) OVER() FROM #abcd ) UPDATE CTE SET time2 = t2/60/60;
但我不明白將在整個表中聚合的相同 SUM() 放入每一行的列中的價值。似乎更容易將這個單個值儲存在一個變數中,或者在執行時計算它(只需使用 CTE 中的查詢)。