Hi in die Runde,
ich habe der gerne mal ein Problem...
...und hoffe, daß einer von Euch mir einen Tipp geben kann.
Wir fahren MySql 5.0.84 und ich verzweifel an folgender Herausforderung.
Tabelle1
KeyT1 ValueT1
A 0
B 3
C 1
D 0
E 1
Tabelle2
KeyT2 ValueT2
A 1
A 2
A 3
B 1
B 1
D 2
D 2
Nun muss ich folgendes machen.
Addieren der Einträge aus Tabelle2 für jeden Key und die entsprechenden Sätze aus Tabelle1 - und nur die! - damit aktualisieren.
Sätze aus Tabelle1, die in Tabelle2 NICHT vorhanden sind sollen unberührt bleiben.
Tabelle1 soll also anschliessend folgendermassen aussehen:
Tabelle1 (nach Summierung)
KeyT1 ValueT2
A 6 (1+2+3 aus Tabelle2)
B 2 (1+1 aus Tabelle2)
C 1 (Alter Wert wie vorher, da in Tabelle2 kein Satz vorhanden ist)
D 4 (2+2 aus Tabelle2)
E 1 (Alter Wert wie vorher, da in Tabelle2 kein Satz vorhanden ist)
Also A B und D wurden aktualisiert, weil dort in Tabelle2 Detailsätze vorhanden sind.
C und E sollen nicht verändert werden, nur wenn Detailsätze vorhanden sind - sind sie aber nicht.
Ich habe schon mit Sum, join, in etc gearbeitet, aber immer werden die Sätze C und E mit '0' (Null) aktualisiert, weil
die Aggregatfunktionen bei nicht vorhandenem Gegenstück auf Null rauskommt
z. B.
UPDATE Tabelle1 T1 SET ValueT1 = (Select SUM(ValueT1) FROM Tabelle2 T2 WHERE KeyT1 = KeyT2)
Hätte bitte jemand einen heissen Tipp?
VG
Holger