0

有时,当我创建报表时,Microstrategy 会使用错误的表进行连接(如果使用报表中的字段出现在多个表中)。例如,如果我有 fact_table 和 fact_table_month,并且它们具有相同的字段,那么当我需要它来获取 fact_table 时,Microstrategy 可能会使用 fact_table_month 进行连接。

我知道创建虚拟指标并在报告中使用它们的可能性。我知道手动更改表的逻辑大小的可能性,但我正在寻找官方和正确的方法来解决 MSTR 中的这个问题。

我如何强制 Microstrategy 加入我想要的表?我如何告诉 MSRT:好的,这个报告使用一个表格,而该报告使用另一个表格?

谢谢!

4

2 回答 2

0

MicroStrategy SQL Engine 在维度上了解您的层次结构。因此,如果您已经定义了属性关系,MicroStrategy 应该选择正确的事实表。

如果您的 fact_table_month 和 fact_table 具有相同的属性和指标,则这意味着这两个表具有相同的粒度,因此它们对于 MicroStrategy 是相同的。如果您认为 fact_table_month 中的指标 A 不是指标 A fact_table 的每月聚合,那么或者 fact_table_month 的名称是错误的,或者您的指标应该是两个不同的事实和指标。

过去,当我遇到类似问题时,从一个系统填充每日表,从另一个系统填充月度表,我使用不同的指标解决了,不幸的是,这让我无法轻松下钻。

在强制 SQL 引擎使用特定表(除了逻辑大小和特定表)的“技巧”中,您还可以向报告对象添加特定属性:仅在最低级别聚合中存在的属性足以命中右表没有额外的虚拟对象。

于 2013-12-12T14:45:42.777 回答
0

最佳方式始终取决于您的项目和报告要求。如果您想精确控制您的报告,那么您可以选择“自由格式 SQL”报告,它要求您手动编写 SQL 并使用您想要的任何连接。

另一种方法是使用报表对象窗格中的最低级别属性。确保此属性存储在您要加入的事实表中的特定级别。

您还可以在需要加入特定事实表时利用 Metric Dimensionality,即 Filtering = None 和 Grouping = none。

谢谢 !

于 2013-12-18T07:52:09.567 回答