Die Antwort von ypercube ist ziemlich spektakulär (ich hatte noch nie eine Variablenerstellung innerhalb einer einzelnen Abfrage über eine solche Dummy-Auswahl gesehen). Hier ist also die Anweisung CREATE TABLE.
Für tabellarische Datenbilder in der Google Bildsuche können Sie https://convertio.co/ocr/ oder https://ocr.space/ verwenden , um sie in ein Textdokument zu konvertieren. Wenn die OCR die Spalten nicht richtig erkannt hat und Sie einen Mac haben, verwenden Sie TextWrangler mit gedrückter Optionstaste, um eine rechteckige Auswahl durchzuführen und die Spalten zu verschieben. Die Kombination aus SQL-Editor wie Sequel Pro , TextWrangler und einer Tabelle wie Google Text & Tabellen macht den Umgang mit tabulatorgetrennten Tabellendaten äußerst effizient.
Wenn ich all dies in einen Kommentar einfügen könnte, würde ich diese Antwort bitte nicht positiv bewerten.
-- DROP TABLE statements;
CREATE TABLE IF NOT EXISTS statements (
id integer NOT NULL AUTO_INCREMENT,
stmnt_date date,
debit integer not null default 0,
credit integer not null default 0,
PRIMARY KEY (id)
);
INSERT INTO statements
(stmnt_date , debit, credit) VALUES
('2014-06-17', 20000, 0 ),
('2014-08-14', 0 , 3000 ),
('2014-07-16', 0 , 3000 ),
('2015-02-01', 3000 , 0 ),
('2014-05-15', 3000 , 0 );
-- this is slightly modified from ypercube's (@b := 0 vs @b := 0.0)
SELECT
s.stmnt_date, s.debit, s.credit,
@b := @b + s.debit - s.credit AS balance
FROM
(SELECT @b := 0) AS dummy
CROSS JOIN
statements AS s
ORDER BY
stmnt_date ASC;
/* result
+------------+-------+--------+---------+
| stmnt_date | debit | credit | balance |
+------------+-------+--------+---------+
| 2014-05-15 | 3000 | 0 | 3000 |
| 2014-06-17 | 20000 | 0 | 23000 |
| 2014-07-16 | 0 | 3000 | 20000 |
| 2014-08-14 | 0 | 3000 | 17000 |
| 2015-02-01 | 3000 | 0 | 20000 |
+------------+-------+--------+---------+
5 rows in set (0.00 sec)
*/