Hallo an alle DB-Spezialisten,
eine Access-DB ist über Delphi-ADOs verbunden.
Die Tabelle KOPF besitzt ein Feld GESAMTWERT, in welches die Summe der zugehörigen Einzelpositionen
(Feld WERT) aus Tabelle EINZELPOS geschrieben werden soll.
Variante 1 (Funktioniert)
Schritt 1:
Update Kopf Set GesamtWert=0
Schritt 2:
Update Kopf
Inner Join
(Select kopfid,wert from EinzelPos) as ep
on ep.kopfid=kopf.id
set GesamtWert=GesamtWert+ep.wert
Variante 2 (Funktioniert nicht)
Das Ganze soll in einem Rutsch passieren, ohne die separate Feldnullung am Anfang.
Die Idee ist wie folgt:
Update Kopf
Inner Join
(Select kopfid,sum(wert) as dieSumme from EinzelPos
Group by kopfid) as ep
on ep.kopfid=kopf.id
set GesamtWert=ep.dieSumme
Das erzeugt den Fehler:
---------------------------
EOleException
Operation muss eine aktualisierbare Abfrage verwenden
---------------------------
Warum?
Verhindert die Verknüpfung der beiden Tabellen über die GROUP BY Klausel die Editierung der Tabelle KOPF?
Hat jemand eine Lösung für die gewünschte 1-Schritt-Aktualisierung?
Gruß und Danke,
JVS