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

use*_*612 2 olap ssas olap-cube

我有一个事实表,其中有4个日期列CreatedDate,LoginDate,ActiveDate和EngagedDate。我有一个称为DimDate的维度表,该表的主键可用作事实表中所有4个日期列的外键。因此模型看起来像这样。 在此处输入图片说明

但是问题是,当我想对基于日期列的度量进行子过滤时。例如:计算上个月创建的并在本月参与的所有用户。这种设计是不可能做到的,因为当我用创建日期过滤度量时,我无法进一步过滤参与日期的其他时间窗口。由于所有连接到相同的尺寸,因此它们不能独立工作。

但是,如果我为每个列创建一个单独的日期维度表,并像这样将它们连接起来,那么它将起作用。 在此处输入图片说明 但是,当我在现实世界场景中的事实表中有20个不同的日期列时,这看起来非常麻烦,其中我必须创建20个不同的维度并将它们一一连接。是否有其他方法可以实现我的方案而无需创建多个重复的日期维度?

mma*_*rie 5

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

MSSQLTips.com上有一篇很好的文章介绍了该主题。