测量SSAS中的日期和时间范围

时间:2014-03-07 10:45:07

标签: ssas

我正在构建一个SSAS多维数据集,其中包含我希望用户能够在其分析中使用的多个时间维度。例如,假设我有以下日期(想象某种工作项跟踪系统)

  • 创建日期
  • 开始日期
  • 关闭日期
  • 上次修改日期

用户可能希望执行以下操作

  • 查看项目创建日期与开始日期之间的平均天数
  • 查看项目启动和关闭之间的最长小时数
  • 查看开始日期和关闭日期之间的最短小时数
  • 等...

简而言之,他们希望能够查看大多数(如果不是全部)这些日期之间的日期/时间比较。

如何在具有多个日期的系统中提供此功能? (最好不要在X和Y之间加上“数字”差异)

1 个答案:

答案 0 :(得分:0)

我会根据现有事实创建一个新事实,每个有意义的日期组合,每个现有事实行都有一行。例如,“创建日期到关闭日期”为1行,“创建日期到最后编辑日期”为另一行。我会将此限制为有意义的组合,例如“截止日期到创建日期”没有行。将日期与“今天”进行比较可能会有其他有用的组合。

我会使用View构建它,带有一系列SELECT和UNION ALL子句 - 每个有意义的日期组合一个。每个SELECT子句的设计将返回现有事实数据中的所有行和列,以及用于描述有意义的日期组合的字符列,以及以天为单位的日期和另外几小时的SQL计算。

然后我会将这个新视图添加到多维数据集中,“复制”(我希望)来自当前事实的维度关系。我会在几天和几小时(6个测量)中创建日期变化的Avg,Min和Max变体。

最后,我将根据列构建一个事实(退化/垃圾)维度来描述有意义的日期组合。