ALL und ANY sind doch nur für den Vergleich, aber das hier ist eine Zuweisung,
außerdem liefert dieses SubSelect sowieso nur
einen Datensatz, womit ANY/ALL eh nutlos wäre.
Ich würde erstmal vermuten, dass hier vielleicht die Tabelle der Fehler ist.
UPDATE sArtikel SET ArtVKPreis_0 = ...
statt
UPDATE sArtikel SET sArtikel.ArtVKPreis_0 = ...
Falls aber
Access unbedingt ein WHERE haben will,
dann
WHERE true
bzw.
WHERE 1
hinten dran.
und statt "..." natürlich das (SubSelect), z.B. wie in Post #2 bzw. #6
Aber ja, wenn man die Hilfe ganz genau nimmt, dann wird SubSelect bei Assignment (Zuweisung) garnicht unterstützt.
Zitat:
Zum Erstellen einer Unterabfrage können Sie eins der folgenden drei Syntaxformate verwenden:
https://stackoverflow.com/questions/...uery-in-access
WITH wird von
Access scheinbar auch nicht unterstütz.
Eine Lösung, welche gehen dürfte:
* SELECT-INTO : also erstmal ALLE Summen in eine TempTabelle speichern
* und dann das UPDATE gegen diese TempTabelle, welche jetzt pro Artikel nur noch je einen Datensatz hat
* zuletzt die TempTable eventuell wieder löschen
Oder ist JOIN mit einem SubSelect möglich?
SQL-Code:
UPDATE sArtikel
INNER JOIN (
SELECT sum(StckListSumme) AS Summe, StckListNr
FROM StckList
GROUP BY StckListNr
) AS temptable
ON sArtikel.ArtNr = temptable.StckListNr
SET sArtikel.ArtVKPreis_0 = temptable.Summe
oder irgendwie so
SQL-Code:
INNER JOIN (
SELECT sum(StckListSumme), StckListNr
...
) AS temptable (Summe, StckListNr)