【问题标题】:Iccube: measure as a filterIccube:作为过滤器进行测量
【发布时间】:2017-04-12 11:55:56
【问题描述】:

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

例如: 维度:产品- 衡量标准:价格

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

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

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

干杯吧

【问题讨论】:

    标签: dimensions iccube iccube-reporting measures


    【解决方案1】:

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

    在服务器中

    您可以添加类似于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( ...
    ...
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-23
      • 2019-08-22
      • 2021-07-08
      • 2015-07-24
      • 1970-01-01
      • 2012-05-12
      • 2021-03-05
      • 1970-01-01
      相关资源
      最近更新 更多