1

在 SSAS 中,有没有办法让维度与基于事实表中的两列的事实表相关?

我们有两个表:位置(维度)和销售(事实)。位置维度有一列:“状态”。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 ? (我不想在这里有角色扮演维度 - 其中一个 Location 维度基于 customerState,另一个 Location 维度基于 billingState。我希望一个维度同时与两列匹配。)

4

1 回答 1

0

不是你想的那样,但你可以通过这样做来实现你想要的:

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

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

将度量值组链接到 Fact 视图中单个 State 列上的 Location 维度。

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

于 2014-12-03T18:50:54.583 回答