Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Come aggiornare SUM di colonna su gruppo nella stessa tabella

Supponendo che tu stia utilizzando SQL Server, penso che tu voglia qualcosa del genere:

WITH toupdate AS
     (SELECT team, year, 
             Sum(personsales) OVER (partition BY team, year) AS newTeamSales 
      FROM salessummary
     ) 
UPDATE toupdate 
   SET teamsales = newteamsales; 

La tua query originale presenta diversi problemi e costrutti sospetti. Innanzitutto, una sottoquery di aggregazione non è aggiornabile. In secondo luogo, stai eseguendo un'aggregazione e utilizzando una funzione finestra con, sebbene consentita, è insolito. Terzo, stai aggregando per PersonSales e prendendo il sum() . Ancora una volta, consentito, ma insolito.