Angenommen, Sie verwenden SQL Server, ich denke, Sie wollen so etwas:
WITH toupdate AS
(SELECT team, year,
Sum(personsales) OVER (partition BY team, year) AS newTeamSales
FROM salessummary
)
UPDATE toupdate
SET teamsales = newteamsales;
Ihre ursprüngliche Abfrage weist mehrere Probleme und verdächtige Konstrukte auf. Erstens ist eine Aggregationsunterabfrage nicht aktualisierbar. Zweitens führen Sie eine Aggregation durch und verwenden eine Fensterfunktion, die zwar zulässig, aber ungewöhnlich ist. Drittens aggregieren Sie nach PersonSales
und Nehmen der sum()
. Wieder erlaubt, aber ungewöhnlich.