Din oprindelige opdateringssætning har GROUP BY og HAVING, som ikke er tilladt i UPDATE-sætningssyntaksen. Her er et link til et syntaksdiagram:OPDATERING (Transact-SQL) .
Din anden version har GROUP BY og HAVING som en del af en afledt tabel, som er tilladt.
Så ja:du havde en syntaksfejl.
Jeg er i øvrigt enig med @bluefeet:en CTE i stedet for en afledt tabel ville gøre din opdatering lettere at læse og forstå. En lille ting, men det kan gøre en stor forskel med hensyn til nem vedligeholdelse.