Update von Werten in einer Tabelle mit Werten aus einer anderen Tabelle

Fragen und Probleme rund um die Abfragespache SQL.
Antworten
Hanno
Benutzer
Beiträge: 72
Registriert: Do 21. Jan 2010, 15:19

Update von Werten in einer Tabelle mit Werten aus einer anderen Tabelle

Beitrag von Hanno » Mo 1. Apr 2019, 13:39

Hallo,

Ich habe heute eine Frage bzgl. eines Update. Ich habe zwei Tabellen und möchte die erste Tabelle mit Werten aus der zweiten Tabelle updaten. Leider bekomme ich das nicht hin und hoffe, dass mir eventuell jemand unter die Arme greifen kann.

Ich habe folgende zwei Tabellen:
personalattribute:
id_personalbestand | verfuegbare_stunden | studienjahr | id_organisationseinheit

mitarbeiter_stunden:
id_personalbestand | verfuegbare_stunden | studienjahr | id_organisationseinheit

Ich habe jetzt nur die identischen Spalten der beiden Tabellen aufgeschrieben. Ich möchte jetzt in der Tabelle personalattribute die verfuegbaren Stunden mit den Werten der verfuegbaren_stunden aus der Tabelle mitarbeiter_stunden füllen. Und das immer dort wo entsprechend id_personalbestand, studienjahr und id_organisationseinheit gleich sind. Beispielsweise möchte ich also für id_personalbestand = 1 und studienjahr = 2019 und id_organisationseinheit = 2 die Werte in der mitarbeiter stunden tabelle suchen und dann beim den korrespondierenden Werten in Tabelle personalattribute bei verfuegbare_stunden eintragen.

Hat vielleicht jemand eine Idee wie ich das machen kann? Könnte mir bitte jemand helfen? Für jede Hilfe bedanke ich mich recht herzlich im Voraus.

Mit freundlichem Gruss
Hanno

akretschmer
Erfahrener Benutzer
Beiträge: 7683
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Update von Werten in einer Tabelle mit Werten aus einer anderen Tabelle

Beitrag von akretschmer » Mo 1. Apr 2019, 13:44

Code: Alles auswählen

test=# create table bla(id int, name text);
CREATE TABLE
test=*# create table blubb(id int, name text);
CREATE TABLE
test=*# insert into bla (id, name) select s, 'name ' || s::text from generate_series(1,5) s;
INSERT 0 5
test=*# insert into blubb (id) select s from generate_series(1,5) s;
INSERT 0 5
test=*# update blubb set name = bla.name from bla where blubb.id=bla.id;
UPDATE 5
test=*# select * from bla;
 id |  name  
----+--------
  1 | name 1
  2 | name 2
  3 | name 3
  4 | name 4
  5 | name 5
(5 rows)

test=*# select * from blubb ;
 id |  name  
----+--------
  1 | name 1
  2 | name 2
  3 | name 3
  4 | name 4
  5 | name 5
(5 rows)

test=*# 
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Hanno
Benutzer
Beiträge: 72
Registriert: Do 21. Jan 2010, 15:19

Re: Update von Werten in einer Tabelle mit Werten aus einer anderen Tabelle

Beitrag von Hanno » Mo 1. Apr 2019, 15:12

super,

Vielen Dank für die sehr schnelle Antwort. Anscheinend hab ich da viel zu kompliziert gedacht. :-)

LG
Hanno

Antworten