ssas - 从一维表到单个事实表的多个联接

标签 ssas olap olap-cube

我有一个事实表,其中有 4 个日期列 CreatedDate、LoginDate、ActiveDate 和 EngagedDate。我有一个名为 DimDate 的维度表,其主键可以用作事实表中所有 4 个日期列的外键。所以模型看起来像这样。 enter image description here

但问题是,当我想根据日期列对度量进行子过滤时。例如:统计上个月创建并本月参与的所有用户。对于这种设计来说这是不可能的,因为当我使用创建日期过滤度量时,我无法进一步过滤参与日期的不同时间窗口。由于所有这些都连接到同一维度,因此它们不是独立工作的。

但是,如果我为每个列创建一个单独的日期维度表,并像这样连接它们,那么它就可以工作。 enter image description here 但是,当我在现实场景中的事实表中有 20 个不同的日期列时,这看起来非常麻烦,我必须创建 20 个不同的维度并将它们一一连接起来。有没有其他方法可以实现我的场景,而无需创建多个重复的日期维度?

最佳答案

这个概念称为角色扮演维度。您不必为每个日期一次将表添加到 DSV 或实际维度。而是添加一次日期,然后转到维度使用选项卡。单击“添加多维数据集维度”,然后选择日期维度。右键单击并重命名。然后更新关系以使用正确的字段。

有一个good article on MSSQLTips.com涵盖了这个主题。

关于ssas - 从一维表到单个事实表的多个联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29107715/

相关文章:

ssis - 分支和合并 SSIS/SSAS 项目

sql-server - mdx 规范?

hadoop - Elasticsearch 中的分析

sql-server - SQL Server Analysis Services 中的多对多关系;第二个多对多关系不起作用

SAS-错误 : Indexes cannot be created for the NWAY aggregation.

excel - 为什么从 SSAS OLAP Cube (MDX) 获取数据时 Excel Grand Total 返回错误 (#VALUE!)?

ssas - 分层筛选维度

sql-server - 将 MDX 转换为 SQL 语句

excel - 对 Analysis Services 的 VBA Repitive MDX 查询

sql-server - 面向最终用户的 SQL Server 分析服务多维数据集的更简单界面