我需要一个表格,显示一周中几天的前一个星期日值。该表是从另一个表构建的,该表具有每天的值。我有一周中的一周(作为数字)和月份包含在表格中。我正在使用SQL Server 2012。
Sun 100
Mon 100
周二100
周三100
周四100
100周年
星期六
Sun 300
Mon 300
周三300
由于 我
答案 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)
基本上从一周中减去一个因此滞后总是回到星期日。
不确定它是否是最佳方式。