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

时间:2013-12-02 18:27:12

标签: microstrategy

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

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

我如何强迫Microstrategy拿走我想加入的桌子?我怎么能告诉MSRT:好的,这个报告使用一个表,而那个报告使用另一个表?

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

最好的方法总是取决于您的项目和报告要求。 如果您想要精确控制报表,那么您可以使用“自由格式SQL”报表,该报表要求您手动编写SQL并使用您想要的任何联接。

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

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

谢谢!