强制Microstrategy在联接中使用特定表

强制Microstrategy在联接中使用特定表,microstrategy,Microstrategy,有时,当我创建报表时,Microstrategy会使用错误的表进行联接(在报表中使用出现在多个表中的字段的情况下)。例如,如果我有fact_table和fact_table_month,并且它们有相同的字段,那么当我需要fact_table_month来获取fact_表时,Microstrategy可能会将fact_table_month作为联接 我知道创建虚拟指标并在报告中使用它们的可能性。我知道手动更改表的逻辑大小的可能性,但我正在寻找官方和适当的方法来解决MSTR中的这个问题 我如何才能强

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

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

我如何才能强制Microstrategy接受我想要加入的表?我如何告诉MSRT:好的,对于这个报告使用一个表,对于那个报告使用另一个表


谢谢大家!

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

如果事实表和事实表具有相同的属性和度量,那么这意味着这两个表具有相同的粒度,因此它们在微观策略上是相同的。如果您认为度量A fact_table_month不是度量A fact_table_month的月度聚合,那么或者fact_table_month的名称是错误的,或者您的度量应该是两个不同的事实和度量

在过去,当我遇到类似的问题时,从一个系统填充每日表,从另一个系统填充每月表,我使用不同的度量来解决,不幸的是,这不允许我轻松深入


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

最佳方法始终取决于您的项目和报表要求。 如果您希望对报表进行精确控制,则可以选择“自由格式SQL”报表,该报表要求您手动编写SQL并使用所需的任何联接

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

此外,您还可以利用度量维度,即过滤=无和分组=无,只要需要加入特定事实表

谢谢