我正在构建一个SSAS多维数据集,其中包含我希望用户能够在其分析中使用的多个时间维度。例如,假设我有以下日期(想象某种工作项跟踪系统)
用户可能希望执行以下操作
简而言之,他们希望能够查看大多数(如果不是全部)这些日期之间的日期/时间比较。
如何在具有多个日期的系统中提供此功能? (最好不要在X和Y之间加上“数字”差异)
答案 0 :(得分:0)
我会根据现有事实创建一个新事实,每个有意义的日期组合,每个现有事实行都有一行。例如,“创建日期到关闭日期”为1行,“创建日期到最后编辑日期”为另一行。我会将此限制为有意义的组合,例如“截止日期到创建日期”没有行。将日期与“今天”进行比较可能会有其他有用的组合。
我会使用View构建它,带有一系列SELECT和UNION ALL子句 - 每个有意义的日期组合一个。每个SELECT子句的设计将返回现有事实数据中的所有行和列,以及用于描述有意义的日期组合的字符列,以及以天为单位的日期和另外几小时的SQL计算。
然后我会将这个新视图添加到多维数据集中,“复制”(我希望)来自当前事实的维度关系。我会在几天和几小时(6个测量)中创建日期变化的Avg,Min和Max变体。
最后,我将根据列构建一个事实(退化/垃圾)维度来描述有意义的日期组合。