Hvis du antager, at du bruger SQL Server, tror jeg, du vil have noget som dette:
WITH toupdate AS
(SELECT team, year,
Sum(personsales) OVER (partition BY team, year) AS newTeamSales
FROM salessummary
)
UPDATE toupdate
SET teamsales = newteamsales;
Din oprindelige forespørgsel har flere problemer og mistænkelige konstruktioner. For det første kan en aggregeringsunderforespørgsel ikke opdateres. For det andet laver du en aggregering, og at bruge en vinduesfunktion med, selvom det er tilladt, er usædvanligt. For det tredje samler du efter PersonSales
og tager sum()
. Endnu en gang tilladt, men usædvanligt.