1

Iccube - 报告:我想使用某些度量值作为过滤器。

例如:维度:产品 - 度量:价格

我想过滤所有低于 50 欧元的产品。一种解决方法是第二维“价格”,但我不希望这样,因为架构将加载更长的时间。

可选:我可以将价格定义为维度的自定义属性。

注意:我不想使用这样的东西 ([product].CurrentMember.properties("price") = '50') 因为有很多不同的值

干杯 j

4

1 回答 1

2

您可以在服务器或报告中解决此问题。

在服务器中

您可以添加类似于此处描述的实用程序层次结构。由于这仅适用于一种产品,因此您需要将其作为产品维度的二级层次结构(加载维度时需要一个包含此信息的新列)。

在报道中。

数据向导中还缺少过滤器,但您可以输入一个 MDX 来过滤您的产品。您可以使用MDX 过滤器功能做到这一点。

此解决方案的要点是,如果您查询定义了子选择where 子句,以及您是否要在过滤产品时使用它。使用查询上下文意味着如果您的查询定义了一个特定的过滤器,例如 [MyCountryInFilter],它将在评估过滤器度量时使用。

Filter( [Products] , [Measures].[MyMeasure] )

将 [MyMeasure] 评估为 ( [MyMeasures], [MyCountryInFilter] )。您确实可以通过使用使其独立于过滤器

Filter( [Products], ( [Country].defaultmember, [MyMeasure] )

使这个“过滤器”独立的更强大的版本是使用静态集。如果集合始终相同,您可以创建一个静态集合(在模式中定义),如下所述

  CREATE STATIC SET [MyFilteredProducts] as Filter( ...

也可以在请求级别定义一个使用静态上下文评估的集合

WITH 
  STATIC SET [MyFilteredProducts] as Filter( ...
...

希望能帮助到你

于 2017-04-13T09:12:00.553 回答