実現したいこと
テーブルにある日付列に入っている日付からこの日付の月初めまでの金額の合計を求めたいです。
前提
下記のテーブルを作成し、データーを挿入します。
SQL
1CREATE TABLE d_test ( 2 processing_date date NOT NULL, 3 price int NOT NULL 4) ENGINE=InnoDB; 5 6INSERT INTO d_test (processing_date, price) VALUES 7('2025-01-01', 100), 8('2025-01-03', 300), 9('2025-01-05', 300), 10('2025-01-09', 450);
求めたい値
processing_date | price | sub_total |
---|---|---|
2025-01-01 | 100 | 100 |
2025-01-03 | 300 | 400 |
2025-01-05 | 300 | 700 |
2025-01-09 | 450 | 1150 |
試したSQL
SQL
1SELECT * , 2(SELECT SUM(price) 3FROM d_test 4WHERE processing_date BETWEEN str_to_date(date_format(processing_date, '%Y-%m-01'), '%Y-%m-%d') AND processing_date) AS sub_total 5FROM `d_test`;
実際の値
processing_date | price | sub_total |
---|---|---|
2025-01-01 | 100 | 1150 |
2025-01-03 | 300 | 1150 |
2025-01-05 | 300 | 1150 |
2025-01-09 | 450 | 1150 |
sub_total には全体の合計が入ってしまいます。
質問内容
どうのようなSQLで求めたい値のデーターを取得できるようになるでしょうか?
環境
- データーベース
MySQL - バージョン
8以降
回答1件
あなたの回答
tips
プレビュー