【问题标题】:MDX - icCube - How to get a DYNAMIC topcount/toppercent with other aggregated?MDX - icCube - 如何与其他聚合获得 DYNAMIC topcount/toppercent?
【发布时间】:2015-03-18 15:23:50
【问题描述】:

使用以下 mdx,我能够动态检索正确的数据。

create CATEGORY MEMBER [Stats].[Top].[All Etabs].[Top 5 Etablissements] 
    as topcount( [Etablissement].[Etablissement].[Etablissement].allMEMBERS, 5, [Measures].[Nbsejours]),ADD_CHILDREN=true

create CATEGORY MEMBER [Stats].[Top].[All Etabs].[Autres Etablissements (>5)] 
    as Except([Etablissement].[Etablissement].[Etablissement].members,  TopCount( [Etablissement].[Etablissement].[Etablissement].MEMBERS, 5, [Measures].[Nbsejours])),ADD_CHILDREN=false

create dynamic set [Top 5 & Others] 
    as {[Stats].[Top].[Top 5 Etablissements], [Stats].[Top].[Autres Etablissements (>5)]}

Select {[Measures].[NbSejours]} on 0,
nonempty ([Top 5 & Others]) on 1
From //[Cube]
( SELECT { {[Geographique].[Zone].[All-M].&[1006]} } ON 0 FROM [Cube])

但是,topCount 本身并不是动态的。在这个例子中,前 5 名的 etablissement 永远不会改变,只有值会改变......

有没有办法通过动态 topCount/topPercent 获得这个? 发送, 伯特兰。

【问题讨论】:

  • 动态是什么意思?
  • 我的意思是前 5 个 etablissements 及其顺序由 3 个创建命令建立一次......它不是针对过滤器计算的。如果我从 [Cube] 查询或仅从 Cube 的一部分查询(来自 ( SELECT { {[Geographique].[Zone].[All-M].&[1006]} } ON 0 FROM [Cube]))

标签: mdx olap iccube


【解决方案1】:

Categories (*) 还没有动态标志,因此无法定义一个类别,该类别将为每个 MDX 请求计算一次,因为它发生在一个集合中。

所以它会更像(注意我使用了很多 SubCubeComplement - 可能真的很多 - 更快)

create dynamic set [Top 5] as 
      topcount( [Etablissement].[Etablissement].[Etablissement].members, 5, [Measures].[Nbsejours])

*** End script ***

WITH 
 CATEGORY HIERARCHY [Stats].[Top], DEFAULT_MEMBER_NAME = "All Etabs"
 CATEGORY MEMBER [Stats].[Top].[All Etabs].[Top 5 Etablissements] as 
      [Top 5],ADD_CHILDREN=true
 CATEGORY MEMBER [Stats].[Top].[All Etabs].[Autres Etablissements (>5)] as
      SubCubeComplement([Top 5]),ADD_CHILDREN=false
SELECT
  {[Measures].[NbSejours]} on 0,
  { [Stats].[Top].[Top 5 Etablissements], 
    [Stats].[Top].[Autres Etablissements (>5)] } on 1
From [Cube]

(*) 对于不习惯 icCube 的人来说,Categories 是一种将“新”成员定义为一组成员的方式(它们可能具有不同的维度)。这确保了对于复杂计算,具有多对多关系的模式可以正确计算值。否则,确保计算正确性可能是一场噩梦。

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    相关资源
    最近更新 更多