如何使用mdx在多维数据集浏览器中跟踪属性的成员是否被选中

时间:2014-02-03 08:39:50

标签: ssas mdx

假设我在“国家/地区”维度下有一个属性“区域”。在多维数据集浏览器中拖动此属性时,我想跟踪哪些成员被选中和未被选中。我想要这反映国家总数。

例如,国家Z有A,B和C区。

  1. 如果选择了所有A,B和C,则国家总数= A + C
  2. 如果选择A和C,则国家总数= A + C
  3. 如果选择B和C,则国家总数= B + C
  4. 如果选择A和B,则国家总数= A
  5. 这个'总'逻辑可能因国家/地区而异。再举一个例子。

    Y国有三个区--D,E和F

    1. 如果D和E则总计= D + E
    2. 如果E和F则总计= E + F
    3. 如果D + E + F则总计= D + E
    4. 如果D + F则总计= D
    5. 这就是为什么我想跟踪浏览时mdx(范围可能是)在特定国家/地区下选择或取消选择区属性下的哪个成员。

      如果你能帮助我,那真是太好了。提前谢谢。

      注意:可能还有其他方法可以处理国家/地区总数。如果您有,请分享。

1 个答案:

答案 0 :(得分:0)

我认为这不能轻易实现:当AS计算单元格的值时,它会得到该单元格的上下文,即。即在列,行和轴中选择的每个层次结构的当前成员。但是在单元格内,计算不知道选择是在where,columns还是row轴中发生,它只知道有选择。这样,当目标是确定行中具有国家Y的单元格的值时,您知道国家Y是地理层次结构的当前值。但是你不知道是否以及哪些区域在其他行中。

对于单个查询肯定有解决方案,您可以确切地知道查询中的位置,并且可能存在至少知道查询结构的查询解决方案(例如“地理位置是行上的第二个层次结构,在查询“)中没有地理学的子选择,甚至可能有一些聪明的通用解决方案,但我怀疑后者将少于大约一百行代码。