MDX - icCube - 如何与其他聚合一起获得 DYNAMIC topcount/toppercent?
MDX - icCube - How to get a DYNAMIC topcount/toppercent with other aggregated?
使用以下 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 来实现?
发送,
伯特兰.
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 的人来说,类别是一种将 'new' 成员定义为一组成员的方式(它们可能具有不同的维度)。这确保对于复杂的计算、具有多对多关系的模式,可以正确计算值。否则要保证计算的正确性可能会有点噩梦。
使用以下 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 来实现? 发送, 伯特兰.
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 的人来说,类别是一种将 'new' 成员定义为一组成员的方式(它们可能具有不同的维度)。这确保对于复杂的计算、具有多对多关系的模式,可以正确计算值。否则要保证计算的正确性可能会有点噩梦。