前提・実現したいこと
MySqlにて前月比を表示させたいと思っておりますが、月末処理にて想定通りに結果を取得できません。
想定する値
|order_date|price|last_order_date|last_price|
|:--|:--:|--:|
|7/31|1000|6/30|4000|
|8/31|2000|7/31|1000|
|9/30|1000|8/30|2000|
発生している問題
8月と9月のように前月が31日、今月が30日の場合に、9/30のレコードは2日分出てしまいます。
該当のソースコード
SQL
1SELECT 2 TM.order_date, 3 TM.price, 4 LM.order_date as last_order_date, 5 LM.price AS last_price 6FROM sample_table TM 7LEFT OUTER JOIN sample_table LM 8AND TM.order_date = DATE_ADD(LM.order_date, INTERVAL 1 MONTH)
取得結果
|order_date|price|last_order_date|last_price|
|:--|:--:|--:|
|9/30|1000|8/30|2000|
|9/30|1000|8/31|2000|
試したこと
SQL
1DATE_ADD('2019/08/30', INTERVAL 1 MONTH) 2DATE_ADD('2019/08/31', INTERVAL 1 MONTH)
が共に2019/9/30を返すことを確認しております。
基本的なことになるとは思うのですが、ご教授いただけますと幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー