やりたい事
下記のテーブルから、当月を含める当月以降3ヶ月以内のvalueを集計し、出力したいです。
periodが201901の場合、201901~201903のvalueの合計値を求めて出力したいです。
value_table
| id | period | value | 
|---|---|---|
| 1 | 201901 | 1 | 
| 1 | 201902 | 2 | 
| 1 | 201903 | 2 | 
| 1 | 201905 | 5 | 
| 2 | 201901 | 2 | 
| 2 | 201902 | 3 | 
| 2 | 201904 | 1 | 
求める出力結果
| id | period | value | 
|---|---|---|
| 1 | 201901 | 5 | 
| 1 | 201902 | 4 | 
| 1 | 201903 | 7 | 
| 1 | 201905 | 5 | 
| 2 | 201901 | 5 | 
| 2 | 201902 | 4 | 
| 2 | 201904 | 1 | 
テーブル
CREATE TABLE value_table ( id VARCHAR(9999) , period VARCHAR(9999) , value VARCHAR(9999) );
求める出力結果が出せず苦戦しております。
アドバイス等ご教示頂けると幸いです。
お手数ですが、宜しくお願い致します。
> 当月を含める3ヶ月以内
 当月をおよび当月以降3ヶ月以内?(当月より後ということ)
> 201901のレコードに格納し
検索・集計するのではなく、上書きしちゃうんですか?
先に201903が7に上書きされてしまうと、
201902は9になり、201901は17になってしまいますが
古い日付から順に処理するのでしょうか?
> valueを集計
なのに、テーブル設計の
> value VARCHAR(9999) 
って文字型なの?
yambejpさん
>当月をおよび当月以降3ヶ月以内?(当月より後ということ)
申し訳ございません。
当月を含める当月以降3ヶ月以内です。
>検索・集計するのではなく、上書きしちゃうんですか?
失礼致しました。
上書きではなく、検索・集計です。
Orlofskyさん
全てVARCHARで設定しております。
数値型にしないと使いにくいのでは?
SQLの経験がないのでしょうか?
回答3件
あなたの回答
tips
プレビュー