Váš původní aktualizační příkaz obsahuje GROUP BY a HAVING, které nejsou v syntaxi příkazu UPDATE povoleny. Zde je odkaz na syntaktický diagram:UPDATE (Transact-SQL) .
Vaše druhá verze obsahuje GROUP BY a HAVING jako součást odvozené tabulky, což je povoleno.
Takže ano:měli jste chybu syntaxe.
Mimochodem souhlasím s @bluefeet:CTE namísto odvozené tabulky by vaši aktualizaci usnadnilo čtení a porozumění. Maličkost, ale může mít velký rozdíl ve snadné údržbě.