Update - Zahl aus anderer Tabelle addieren

ramboni

Benutzer
Beiträge
17
Hallo zusammen,

nach gefühlt 30h testen und googeln wende ich mich an euch... Hallo erstmal :)

Situation:

Mastertabelle: 3 Felder [ ID, Anzahl, Name]
TempTabelle: 3 Felder [ ID, Anzahl, Name]

In der Master steht z.B.
ID = 1
Anzahl = 10
Name = Peter

In der TempTabelle steht z.B.
ID= 44
Anzahl=5
Name= Peter


Die TempTabelle wir ständig mit neuen Werten gefüllt und soll nach dem addieren wieder geleert werden.

Challenge:

Ich möchte meine MasterTabelle um den Wert der Temptabelle Updaten.
Wenn also in der Temp (Peter=5) steht, soll nach dem Update in der Master (Peter= 15) stehen.


Es klingt (und ist wahrscheinlich auch) super simple... aber ich bekomm es nciht hin :(

Evtl fällt euch da ja was ein :)
 
Werbung:
Code:
test=*# select * from master;
 id | anzahl | name  
----+--------+-------
  1 |     20 | Peter
  2 |     10 | Max
  3 |     30 | Susi
(3 rows)

test=*# select * from temp_table;
 id | anzahl | name  
----+--------+-------
 44 |      5 | Peter
 45 |     15 | Susi
(2 rows)

test=*# with move as (delete from temp_table returning *) update master set anzahl=master.anzahl+move.anzahl from move where master.name=move.name;
UPDATE 2
test=*# select * from master;
 id | anzahl | name  
----+--------+-------
  2 |     10 | Max
  1 |     25 | Peter
  3 |     45 | Susi
(3 rows)

test=*# select * from temp_table;
 id | anzahl | name
----+--------+------
(0 rows)

test=*#

So vielleicht?
 
Werbung:
Zurück
Oben