Pernyataan pembaruan asli Anda memiliki GROUP BY dan HAVING, yang tidak diperbolehkan dalam sintaks pernyataan UPDATE. Berikut tautan ke diagram sintaks:PERBARUI (Transact-SQL) .
Versi kedua Anda memiliki GROUP BY dan HAVING sebagai bagian dari tabel turunan, yang adalah diizinkan.
Jadi, ya:Anda memang memiliki kesalahan sintaksis.
Kebetulan, saya setuju dengan @bluefeet:CTE sebagai pengganti tabel turunan akan membuat pembaruan Anda lebih mudah dibaca dan dipahami. Hal kecil, tetapi dapat membuat perbedaan besar dalam kemudahan perawatan.