I'm trying to update a field in the database to the sum of its joined values:
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
When I run this I get the following error:
"An aggregate may not appear in the set list of an UPDATE statement."
Any ideas?
How about this:
UPDATE
p
SET
p.extrasPrice = t.sumPrice
FROM
BookingPitches AS p
INNER JOIN
(
SELECT
PitchID,
SUM(Price) AS sumPrice
FROM
BookingPitchExtras
WHERE
[required] = 1
GROUP BY
PitchID
) t
ON
t.PitchID = p.ID
WHERE
p.bookingID = 1;