在SQL Server中连续计算几周

时间:2017-09-22 09:58:55

标签: sql-server date

我正在研究SQL Server

我有以下数据集:

Shop_ID     Product_Id     Date     Week     Year
0001             A      2015-01-26    5      2015
0001             A      2015-02-02    6      2015
0001             B      2015-01-03    1      2015
0002             C      2015-01-15    3      2015
0002             C      2015-01-26    5      2015
0002             C      2015-02-02    6      2015

我想要创建的内容是可变的,表示产品在连续两周内在同一商店出售。我会在这里:

Shop_ID     Product_Id     Date     Week     Year     Sale
0001             A      2015-01-26    5      2015       0
0001             A      2015-02-02    6      2015       1
0001             B      2015-01-03    1      2015       0
0002             C      2015-01-15    3      2015       0
0002             C      2015-01-26    5      2015       0
0002             C      2015-02-02    6      2015       1

我已经阅读了类似主题的一些内容,例如: How can I find consecutive active weeks in SQL?

但我正在努力在我的案子中复制这一点......特别是因为我考虑的是几周而不是几天。

最后,我还希望能够留出空白,这意味着如果产品连续销售3周 - 然后不再销售 - 那么再连续5周,我想采取这些值的最大值。但是我猜想,一旦我创建了一个变量,例如上面的“Sale”,就很容易做到这一点。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用LAG运行周计数:

<button class="btn btn-outline-secondary" @click="willShowCountyModal(pricing)">edit</button>