ypercube의 답변 은 매우 훌륭합니다 (나는 더미 선택을 통해 단일 쿼리 내에서 변수 생성을 본 적이 없었습니다). 여기에 편의를 위해 CREATE TABLE 문이 있습니다.
Google 이미지 검색의 표 형식 데이터 이미지의 경우 https://convertio.co/ocr/ 또는 https://ocr.space/ 를 사용 하여 텍스트 문서로 변환 할 수 있습니다. 그런 다음 OCR이 열을 제대로 감지하지 못하고 Mac이있는 경우 옵션 키를 누른 상태에서 TextWrangler 를 사용하여 사각형을 선택 하고 열을 이동하십시오. Sequel Pro , TextWrangler와 같은 SQL 편집기와 Google Docs 와 같은 스프레드 시트를 조합 하면 탭으로 구분 된 표 형식 데이터를 매우 효율적으로 처리 할 수 있습니다.
이 모든 것을 의견에 넣을 수 있다면이 답변을 찬성하지 마십시오.
-- 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)
*/