Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

AW: Access SQL Summe von Stückliste berechnen und updaten

  Alt 11. Nov 2022, 02:08
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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (11. Nov 2022 um 09:02 Uhr)
  Mit Zitat antworten Zitat