Hallo,
in
Access habe ich eine Aktualisierungsabfrage zusammengebastelt - in Delphi bzw. im
SQL-Fenster des
SQL-Explorers (Delphi 7) klappt das nicht:
UPDATE [Auftragpos
Paradox] INNER JOIN [Z2_Rabatte pro Hauptposition] ON ([Auftragpos
Paradox].pos_h = [Z2_Rabatte pro Hauptposition].pos_h) AND ([Auftragpos
Paradox].Auftrnum = [Z2_Rabatte pro Hauptposition].Auftrnum) SET [Auftragpos
Paradox].RABATTSATZ = [Z2_Rabatte pro Hauptposition].[RABATTSATZ];
Erklärung:
1. Tabelle heißt Auftragpos und hat mehr Datensätze als die 2. Tabelle Rabatte
Beide Tabellen haben das Feld "RABATTSATZ"
Nun sollen die Werte von Tabelle Rabatte in das identische Feld der Tabelle Auftragpos kopiert werden.
Bedingung: Auftragsnummer (Auftrnum) und Hauptposition (pos_h) sind identisch.
Ein Artikel ist unter "
SQL: Update aus zweiter Liste" vorhanden.
Aber der löst das Problem nicht. Nach dem Lösungsvorschlag hieße meine Syntax:
UPDATE 'Auftragpos.db' as a LEFT OUTER JOIN 'Rabatte.db' as o ON a.pos_h = o.pos_h AND a.Auftrnum = o.Auftrnum SET a.RABATTSATZ = o.RABATTSATZ
Fehlermeldung des
SQL-Explorers: Invalid use of keyword, Token: LEFT !?
Vielleicht kennt ja jemand noch einen einfacheren Weg, z. B. mit Batch-Move oder Masterfield.
Jedenfalls müssen die Werte am Schluss in der Tabelle Auftragpos verfügbar sein.
vg
Thomas