Ich möchte 3. Spalte hinzufügen oder zweite Spalte durch Hinzufügen der vorherigen Zeile Wert Punktzahl ändern. Ich erhalte datensatzweise zwei Tabellenhinzufügungen, kann aber keine serielle Datenaddition erhalten.Rolling-up-Zusatz mit mysql
DDLs:
CREATE TABLE 1_bugs
(id int(11) NOT NULL
, date date NOT NULL
, cf1 int(11) NOT NULL
, cf2 int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO 1_bugs (id, date, cf1, cf2) VALUES
(1, '2016-07-19', 3, 2),
(2, '2016-07-19', 2, 1),
(3, '2016-07-22', 2, 2);
Abfrage:
SELECT table.date1, IFNULL(table.cf1 + bugs.cf2),0) as score FROM table GROUP BY table.date1;
Ausgang:
| date1 | score |
| 2016-07-19 | 5 |
| 2016-07-19 | 3 |
| 2016-07-22 | 4 |
Erwartet:
| date1 | score | Total score |
| 2016-07-19 | 5 | 5 |
| 2016-07-19 | 3 | 8 |
| 2016-07-22 | 4 | 12 |
Ich habe Rollup versucht, aber es gibt keine Ausgabe wie erwartet und nur Null Zeile mit der Addition aller Score-Werte hinzugefügt.
| date1 | score |
| 2016-07-19 | 5 |
| 2016-07-19 | 3 |
| 2016-07-22 | 4 |
| null | 12 |
Kann mir bitte jemand helfen, die Ausgabe wie erwartet zu bekommen?
Wenn Sie möchten, sollten Sie im Anschluss an diese einfachen zweistufigen Vorgehensweise: 1. Wenn Sie dies noch nicht getan haben, eine ordnungsgemäße und CREATE-Anweisungen INSERT (und/oder einer sqlfiddle), damit wir leichter replizieren Sie das Problem. 2. Wenn Sie dies noch nicht getan haben, geben Sie eine gewünschte Ergebnismenge ein, die den in Schritt 1 bereitgestellten Informationen entspricht. – Strawberry
CREATE TABLE '1_bugs' ( ' id' int (11) NICHT NULL, 'Datum' Datum NOT NULL , 'cf1' int (11) NICHT NULL, ' cf2' int (11) NICHT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1; INSERT INTO '1_bugs' (' id', 'date',' cf1', 'cf2') WERTE (1, '2016-07-19', 3, 2), (2, 2016-07 -19 ', 2, 1), (3,' 2016-07-22 ', 2, 2); –
Kannst du es noch einmal lesen? Nicht erwähnt erstellen, einfügen und erwartet, tatsächlich, Problem bereits? Besser können Sie es bitte beantworten, wenn Sie es wissen? –