Estoy tratando de establecer el valor en una tabla con la suma de los valores en otra tabla. Algo en estas líneas:
UPDATE table1
SET field1 = SUM(table2.field2)
FROM table1
INNER JOIN table2 ON table1.field3 = table2.field3
GROUP BY table1.field3Por supuesto, tal como está, no funcionará, SETno es compatible SUMy no es compatible GROUP BY.  
Debería saber esto, pero mi mente se está quedando en blanco. ¿Qué estoy haciendo mal?
                    
                        sql
                                sql-server
                                tsql
                                
                    
                    
                        Margaret
fuente
                
                fuente

Respuestas:
fuente
Utilizar:
fuente
O puede usar una combinación de respuestas de JBrooks y OMG Ponies :
fuente
Una buena situación para usar CROSS APPLY
fuente
Sé que la pregunta está etiquetada como SQL Server, pero tenga cuidado con UPDATE with JOIN si está utilizando PostgreSQL . La respuesta de @JBrooks no funcionará:
Tendrás que adaptarlo a:
Consulte el parámetro
from_listen el documento para saber por quéFROMPostgreSQL lo considera una autounión: https://www.postgresql.org/docs/9.5/static/sql-update.html#AEN89239fuente
También puede utilizar CTE como se muestra a continuación.
fuente