SSAS - 是否有办法根据事实表中的两列将维度与事实表相关联?

时间:2014-12-03 18:22:54

标签: ssas dimensions fact-table

在SSAS中,是否可以根据事实表中的两列将维度与事实表相关联?

我们有两个表:位置(维度)和销售(事实)。 Location维度有一列:“state”。 Sales表有三列:“saleAmount”,“customerState”和“billingState”(因为我们的客户可能在加利福尼亚,但希望我们向纽约的公司或分支机构收费)。

在SQL中,如果我们想要查看加利福尼亚州的所有销售,我们将SQL查询编写为:

select sum(saleAmount) from Sales where customerState = 'California' or billingState = 'California'

在构建我的多维数据集时,有没有办法在SSDT中完成此操作,以便当我使用Excel作为最终用户工具并从Location维度和saleAmount度量中选择state属性时,saleAmount将基于customerState或billingState? (我不希望在这里有角色扮演维度 - 其中一个位置维度基于customerState,另一个位置维度基于billingState。我希望一个维度同时与两个列匹配。)

1 个答案:

答案 0 :(得分:0)

不是你想的那样,但你可以通过这样做达到你想要的目标:

在事实表上创建一个视图,即与customerState相关的事实的UNION和与billingState相关的事实。这意味着视图将只有1个State列,如果一个事实对customerState和billingState有不同的值,那么它在视图中将有两行。

使用视图而不是表来填充多维数据集中的度量值组。

将“度量值组”链接到“事实”视图中单个“状态”列上的“位置”维度。

建设者要小心,这会导致在汇总单个事实处于两种不同状态的状态时重复计算事实。