Din ursprungliga uppdateringssats har GROUP BY och HAVING, som inte är tillåtna i UPDATE-satsens syntax. Här är en länk till ett syntaxdiagram:UPPDATERING (Transact-SQL) .
Din andra version har GROUP BY och HAVING som en del av en härledd tabell, som är tillåten.
Så, ja:du hade ett syntaxfel.
För övrigt håller jag med @bluefeet:en CTE i stället för en härledd tabell skulle göra din uppdatering lättare att läsa och förstå. En liten sak, men det kan göra stor skillnad i underhållsvänligheten.