我有一个表格,称为预测,我们将在未来6个月内存储所有产品的预测。例如,当我们在11月份时,我们创建了12月,1月,2月,3月,4月和5月的预测。该预测表看起来像下面通过postgres计算过去3个月中的月度预测
+----------------+---------------+--------------+----------+
| product_number | forecasted_on | forecast_for | quantity |
+----------------+---------------+--------------+----------+
| Prod 1 | 2016-11-01 | 2016-12-01 | 100 |
| Prod 1 | 2016-11-01 | 2017-01-01 | 200 |
| Prod 1 | 2016-11-01 | 2017-02-01 | 300 |
| Prod 1 | 2016-11-01 | 2017-03-01 | 400 |
| Prod 1 | 2016-11-01 | 2017-04-01 | 500 |
| Prod 1 | 2016-11-01 | 2017-05-01 | 600 |
+----------------+---------------+--------------+----------+
一个在表格中包含产品编号的列表,并在其上创建的预测,即forecasted_on的日期和它的预测是与预测一起创建了一个月数量。
每个月的数据都会在接下来的6个月内添加。因此,当预测结果为2016年1月1日时,预测将在1月至6月之间建立。
我想创建一份报告,显示过去3个月总预测的变化情况。这样
+------------+----------------+---------------+----------------+
| | 0 months prior | 1 month prior | 2 months prior |
+------------+----------------+---------------+----------------+
| 2016-12-01 | 200 | 150 | 250 |
| 2017-01-01 | 300 | 250 | 150 |
| 2017-02-01 | 100 | 150 | 100 |
+------------+----------------+---------------+----------------+
事情目前我使用了很多重复的代码在轨生成此表。我想知道是否有更简单的方法直接使用SQL查询来完成它。
任何帮助将不胜感激。