【问题标题】:Period and Quarter Sequence期间和季度顺序
【发布时间】:2020-09-07 05:36:57
【问题描述】:

我正在尝试找到一种方法来对日期期间和季度进行排序(不确定这是否是正确的术语)。

基本上,一旦我将其加入我们的销售数据,这将有助于人们根据周、期间和季度来导航日期。例如,如果我只想知道上周的销售额,我可以使用WHERE WeekSequence = -1... 再比如,经理想要获取上一季度的销售数据,我可以使用WHERE QuarterSequence = -1。 ..类似的东西。

My current table:

WeekStartDate  WeekEndDate  CurrentWeek  Period  Quarter  WeekSequence
----------------------------------------------------------------------
2020-08-03     2020-08-09   0            2       1        -5
2020-08-10     2020-08-16   0            2       1        -4
2020-08-17     2020-08-23   0            2       1        -3
2020-08-24     2020-08-30   0            2       1        -2
2020-08-31     2020-09-06   0            2       1        -1
2020-09-07     2020-09-13   1            3       1        0
2020-09-14     2020-09-20   0            3       1        1
2020-09-21     2020-09-27   0            3       1        2
2020-09-28     2020-10-04   0            3       1        3
2020-10-05     2020-10-11   0            4       2        4
2020-10-12     2020-10-18   0            4       2        5

我希望它看起来像什么(突出显示):

【问题讨论】:

  • 看看下面blog
  • 你能解释一下什么是“时期”吗?
  • @Christian 我指的是财务期和季度。抱歉,如果不清楚。
  • @PrebenHuybrechts 这更多的是创建实际的日期维度。这无济于事......
  • @ChristianneRioOrtega 好的,但是“期间”是如何定义的?也就是说,财务期的开始和结束时间是什么时候(例如哪一个月)?

标签: sql sql-server database tsql


【解决方案1】:

如果我理解正确,请使用窗口函数:

select t.*,
       (period -
        max(case when currentweek = 1 then period end) over ()
       ) as periodsequence,
       (quarter -
        max(case when currentweek = 1 then quarter end) over ()
       ) as quartersequence       
from t;

您可以将其包含在视图中,而不是将其放在表格中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多