mar*_*vpc 47 sql sum sql-update
我正在尝试将数据库中的字段更新为其连接值的总和:
UPDATE P
SET extrasPrice = SUM(E.price)
FROM dbo.BookingPitchExtras AS E
INNER JOIN dbo.BookingPitches AS P ON E.pitchID = P.ID
AND P.bookingID = 1
WHERE E.[required] = 1
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到以下错误:
"An aggregate may not appear in the set list of an UPDATE statement."
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Jon*_*onH 65
这个怎么样:
UPDATE p
SET p.extrasPrice = t.sumPrice
FROM BookingPitches AS p
INNER JOIN
(
SELECT PitchID, SUM(Price) sumPrice
FROM BookingPitchExtras
WHERE [required] = 1
GROUP BY PitchID
) t
ON t.PitchID = p.ID
WHERE p.bookingID = 1
Run Code Online (Sandbox Code Playgroud)
上述解决方案的替代方法是使用表的别名:
UPDATE T1 SET T1.extrasPrice = (SELECT SUM(T2.Price) FROM BookingPitchExtras T2 WHERE T2.pitchID = T1.ID)
FROM BookingPitches T1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86753 次 |
| 最近记录: |