Ich versuche, den Wert in einer Tabelle auf die Summe der Werte in einer anderen Tabelle zu setzen. Etwas in diese Richtung:
UPDATE table1
SET field1 = SUM(table2.field2)
FROM table1
INNER JOIN table2 ON table1.field3 = table2.field3
GROUP BY table1.field3
Natürlich wird es derzeit nicht funktionieren - SET
es wird nicht unterstützt SUM
und es wird nicht unterstützt GROUP BY
.
Ich sollte das wissen, aber meine Gedanken zeichnen eine Lücke. Was mache ich falsch?
sql
sql-server
tsql
Margaret
quelle
quelle
Antworten:
quelle
Verwenden:
quelle
Oder Sie könnten eine Mischung aus Antworten von JBrooks und OMG Ponies verwenden :
quelle
Eine gute Situation, um CROSS APPLY zu verwenden
quelle
Ich weiß, dass die Frage mit SQL Server gekennzeichnet ist, aber seien Sie vorsichtig mit UPDATE mit JOIN, wenn Sie PostgreSQL verwenden . @JBrooks Antwort wird nicht funktionieren:
Sie müssen es anpassen an:
Unter Parameter
from_list
im Dokument erfahren Sie, warumFROM
PostgreSQL als Self-Join betrachtet wird: https://www.postgresql.org/docs/9.5/static/sql-update.html#AEN89239quelle
Sie können CTE auch wie unten verwenden.
quelle