Iccube:测量为过滤器

时间:2017-04-12 11:55:56

标签: dimensions iccube iccube-reporting measures

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

例如: 尺寸:产品 - 衡量:价格

我想过滤所有< 50€。 解决方法将是第二个维度"价格"但我不希望这样,因为架构会加载更长的时间。

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

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

欢呼j

1 个答案:

答案 0 :(得分:2)

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

在服务器中

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

在报告中

数据向导中缺少过滤器,但您可能会输入过滤产品的MDX。您可以使用MDX Filter function执行此操作。

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

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

将[MyMeasure]评估为([MyMeasures],[MyCountryInFilter])。您确实可以使用

使其独立于过滤器
Filter( [Products], ( [Country].defaultmember, [MyMeasure] )

使这个'过滤器'独立的更强大的版本是使用静态集。如果集合始终相同,您可以创建一个静态集(在架构中定义它),如here所述:

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

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

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

希望有所帮助