MDX-icCube-如何与其他聚合数据一起获得动态topcount/toppercent?

MDX-icCube-如何与其他聚合数据一起获得动态topcount/toppercent?,mdx,olap,iccube,Mdx,Olap,Iccube,使用以下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].[T

使用以下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位的值永远不会改变,只有值会改变

有没有办法通过动态topCount/topPercent实现这一点? Txs, Bertrand.

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

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


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

你说的动态是什么意思?我的意思是,前5个etablisions及其顺序是由3个create命令建立的。。。它不是针对过滤器计算的。如果我从[Cube]查询,或者如果我仅从部分多维数据集查询(从[Cube]中选择0上的{{[Geographique].[Zone].[All-M].&[1006]}),则这些元素及其顺序是相同的)非常感谢,ic3!
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]