Iccube - 报告:我想使用某些度量值作为过滤器。
例如:维度:产品 - 度量:价格
我想过滤所有低于 50 欧元的产品。一种解决方法是第二维“价格”,但我不希望这样,因为架构将加载更长的时间。
可选:我可以将价格定义为维度的自定义属性。
注意:我不想使用这样的东西 ([product].CurrentMember.properties("price") = '50') 因为有很多不同的值
干杯 j
Iccube - 报告:我想使用某些度量值作为过滤器。
例如:维度:产品 - 度量:价格
我想过滤所有低于 50 欧元的产品。一种解决方法是第二维“价格”,但我不希望这样,因为架构将加载更长的时间。
可选:我可以将价格定义为维度的自定义属性。
注意:我不想使用这样的东西 ([product].CurrentMember.properties("price") = '50') 因为有很多不同的值
干杯 j
您可以在服务器或报告中解决此问题。
在服务器中:
您可以添加类似于此处描述的实用程序层次结构。由于这仅适用于一种产品,因此您需要将其作为产品维度的二级层次结构(加载维度时需要一个包含此信息的新列)。
在报道中。
数据向导中还缺少过滤器,但您可以输入一个 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( ...
...
希望能帮助到你