sql >> Base de Datos >  >> RDS >> Sqlserver

Actualizar con Unir, Agrupar por y Tener

Su declaración de actualización original tiene GROUP BY y HAVING, que no están permitidos en la sintaxis de la declaración UPDATE. Aquí hay un enlace a un diagrama de sintaxis:ACTUALIZAR (Transact-SQL) .

Su segunda versión tiene GROUP BY y HAVING como parte de una tabla derivada, que es permitió.

Entonces, sí:tuviste un error de sintaxis.

Por cierto, estoy de acuerdo con @bluefeet:un CTE en lugar de una tabla derivada haría que su actualización fuera más fácil de leer y comprender. Una pequeña cosa, pero puede hacer una gran diferencia en la facilidad de mantenimiento.