SQL: Aktualisieren mit Werten aus anderer Tabelle

Aus DBWiki
Wechseln zu: Navigation, Suche

Zurück zur Übersicht


Die direkte Einbindung in die UPDATE-Anweisung gestaltet das Aktualisieren sehr komfortabel. Durch die Angabe der zu aktualisierenden Tabelle (die nach dem Schlüsselwort UPDATE aufgelistete Tabelle) gibt es keine Verwirrung darüber, welche Zeilen in welcher Tabelle geändert werden.


Hinweis für Access-Anwender
Um die folgende Abfrage selbst testen zu können, müssen die Tabellen der Übungsdatenbank vorhanden sein.


Soll z. B. eine Gehalts- und Provisionsangleichung für die Mitarbeiter der Abteilung 10 erfolgen, und das neue Gehalt liegt in einer Tabelle gehalt_neu wie folgt vor,

abt_nr gehalt
10 3700

lässt sich mit dieser Aktualisierungsabfrage die Aufgabe bewältigen:

UPDATE mitarbeiter AS m,
       gehalt_neu AS gn
SET    m.gehalt = gn.gehalt,
       m.provision = gn.gehalt / 2
WHERE  m.abt_nr = gn.abt_nr

Das Resultat nach der Aktualisierung präsentiert sich dann so:

ma_nr ma_name gehalt provision abt_nr
7782 Kühne 3700 1850 10
7839 König 3700 1850 10
7934 Müller 3700 1850 10
7369 Schmidt 800 (Null) 20
7566 Johann 2975 (Null) 20
7788 Scheidt 3000 (Null) 20
7876 Adam 1100 (Null) 20
7902 Fuhrmann 3000 (Null) 20
7499 Allard 1600 300 30
7521 Wecker 1250 500 30
7654 Mertens 1250 1400 30
7698 Blank 2850 (Null) 30
7844 Dreher 1500 0 30
7900 Jakobs 950 (Null) 30

Zurück zur Übersicht