在表格中填写一周的星期日值

时间:2015-06-08 23:11:16

标签: sql sql-server row-number

我需要一个表格,显示一周中几天的前一个星期日值。该表是从另一个表构建的,该表具有每天的值。我有一周中的一周(作为数字)和月份包含在表格中。我正在使用SQL Server 2012。

Sun 100

Mon 100

周二100

周三100

周四100

100周年

星期六

Sun 300

Mon 300

周三300

由于 我

1 个答案:

答案 0 :(得分:0)

是的,从日期维度表中我将星期几作为数字。

我设法通过将我的事实加入日期维度表并在星期日过滤来实现。然后将我的日期维度加入到这个新创建的表中。所以我有周日的价值和本周其余时间的零点。然后我使用了一个滞后的案例陈述:

(case when sum(b.Delivery_Value) is null then lag(sum(b.Delivery_Value),a.day_of_week - 1) over (order by a.date_key asc) else sum(b.Delivery_Value) end)

基本上从一周中减去一个因此滞后总是回到星期日。

不确定它是否是最佳方式。