【问题标题】:MDX - icCube - How to get a percentage of the Top x on the total using CategoriesMDX - icCube - 如何使用类别获取 Top x 在总数中的百分比
【发布时间】:2015-08-18 12:31:14
【问题描述】:

在动态 topcount/toppercentage 的帖子之后(请参阅 here),我正在寻找另一行信息,显示 Top X 相对于总数的百分比。

所以,像

  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

/* This is what I try, but it does not work */
CATEGORY MEMBER [Stats].[Top].[All Etabs].[Top 5 is % of total] as
      [Top 5]/ [Etablissement].[Etablissement].[Etablissement].members, ADD_CHILDREN=false

SELECT
  {[Measures].[NbSejours]} on 0,
  { [Stats].[Top].[Top 5 Etablissements], 
    [Stats].[Top].[Autres Etablissements (>5)],
    [Stats].[Top].[Top 5 is % of total] } on 1
From [Cube]

不幸的是,我收到错误“元组表达式没有生成一组元组或子多维数据集(数字)。”

这样的事情有可能吗,怎么可能?

【问题讨论】:

  • 很快,一个类别成员必须定义一个子立方体的集合。您的表达式看起来更像是标准计算成员。不确定它是否有效,但尝试使用 MEMBER [Stats].[Top].[All Etabs].[Top 5 is % of total] 作为 [Stats].[Top].[All Etabs].[Top 5 Etablissements] / [Stats].[Top].[All Etabs]
  • 如果它不起作用,您创建一组计算。另一个“未使用”维度中的成员

标签: dynamic mdx iccube


【解决方案1】:

上述 cmets 中关于在另一个“未使用”维度中添加计算成员的建议有效:

     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
    /* the hierarchy [Stats].[stats] exists, I add a new calculated member
       to it */
    CALCULATED MEMBER [Stats].[Stats].[Top 5 is % of total] as
         [Stats].[Top],[Stats].[Top].[All Etabs]
    SELECT
      {[Measures].[NbSejours]} on 0,
      {([Stats].[Stats].[default] /* the default member */}* { [Stats].[Top].[Top 5 Etablissements], 
        [Stats].[Top].[Autres Etablissements (>5)],
        [Stats].[Top].[Top 5 is % of total] }) 
      +({[Stats].[Stats].[Top 5 is % of total]} * {[Stats].[Top],[Stats].[Top].[All Etabs]}) on 1
    From [Cube]

唯一的缺点是我现在多了一个专栏。

【讨论】:

  • 您可以通过使用原始列创建一个元组来恢复该列
猜你喜欢
  • 1970-01-01
  • 2021-09-28
  • 2016-07-07
  • 1970-01-01
  • 2021-11-24
  • 2020-10-19
  • 2020-07-31
  • 1970-01-01
  • 2018-12-26
相关资源
最近更新 更多