Ich suche eine SQL-Anweisung zu erstellen, die eine große Menge von Daten aktualisieren wird.MySQL merge Beträge in 2 Zeilen
Was ich habe, ist eine Tabelle, wie
id, transid, amount, narative1, narative 2, total, active
1 1234 23.2 NULL NULL NULL 1
2 1234 120.33 NULL NULL NULL 1
3 1235 98.00 NULL NULL NULL 1
Wenn es zwei Zeilen mit demselben transid ich sie das Ergebnis in der gesamten Spalte der ersten mit dieser transid setzen insgesamt müssen, und die zweite setzen Betrag in naritive2 der ersten Instanz sowie machen Sie die zweite inaktiv. Es sollte einzelne Zeilen für eine Transid ignorieren.
Das Ergebnis, was ich will sollte tun:
id, transid, amount, narative1, narative 2, total, active
1 1234 23.2 NULL 120.33 143.53 1
2 1234 120.33 NULL NULL NULL 0
3 1235 98.00 NULL NULL NULL 1
Ich weiß, ein bisschen wie ein Tanga Twister aber ..
Ideal nur MySQL-Anweisungen in Ich möchte, dies zu tun . Also habe ich nichts dagegen, mehrere SQL-Anweisungen zu machen, aber ich möchte vermeiden, es mit PHP usw. zu verbinden. Es ist eine sehr große Menge von Daten.
was genau wird aktualisiert? In Ihrem Beispiel wurden nur wenige Werte geändert. Woher nehmen Sie die Werte, von denen Sie aktualisieren möchten? Willst du das mit der Hand machen? Wie schreibe ich eine SQL-Anweisung mit allen Einträgen/Werten? – markus
werden die Beträge aus Zeile 1 und 2 addiert. d.h. 23,2 + 120,33 = 143,53 und die Summe wird in die erste Zeile gesetzt. Die zweite Reihe ist dann deaktiviert. –