具有多个第一周的维度日期表

时间:2017-02-21 13:23:25

标签: datetime sql-server-2012 data-warehouse

我即将开始使用SQl Server 2012为数据仓库项目创建维度日期表。

第一个用户评论是....

'不同的客户将在一周的第一天不同,所以并非总是在星期一'。

我如何在单个昏暗的表格中容纳7个不同的工作日开始,或者我应该在事实表中以每个客户为基础以传统的方式计算它而不使用昏暗的日期表? / p>

1 个答案:

答案 0 :(得分:1)

选项1.使用内置日期匹配功能即时计算。 SQL Server默认为星期日作为一周的第一天。

选项2.在表格中为每周的每一天创建一个附加列,指明其每周的日期编号。例如,列TuesdayFirst每周二将为1,每周三为2。

选项3.(最佳)在日期维度上创建一个视图,用于计算每天的其他列。 select中不需要的任何列都将被忽略,而不会被计算。这给出了持久列和一致计算方法的好处,但与预先计算相比确实有一些处理开销。

如果选择选项3,请不要使用CASE语句来计算它。您必须严格使用日期数学,以便在聚合时能够正常运行。