MDX过滤具有其他维度结果的维度成员

时间:2015-07-10 14:56:10

标签: ssas mdx

我想使用另一个维度中的一些信息来过滤多维数据集安全性的维度。

所以 - 我有一个维度,其中包含一些帐户负责人(帐号和负责人的姓名缩写)以及所有帐户的另一个维度。 我想确保一个人只能看到他们负责的账户上的动作。

我可以像这样进行过滤:

SELECT 
  {} ON 0
 ,{
    Exists
    (
      Filter
      (
          [Accounts].[Accounts].[AccountNo]
        * 
          [AccountResponsible].[AccountResponsible].[AccountNo]
       ,
          [Accounts].[Accounts].Properties("key")
        = 
          [AccountResponsible].[AccountResponsible].Properties("key")
      )
     ,[AccountResponsible].[Responsible].&[MSA]
    )
  } ON 1
FROM mycube;

问题是,有两列,我不能在多维数据集安全性中使用它。有没有办法重写这个,所以我实际上只有一列包含允许用户看到的成员?

1 个答案:

答案 0 :(得分:0)

尝试使用Extract功能:

SELECT 
  {} ON 0
 ,

 EXTRACT(
 {
    Exists
    (
      Filter
      (
          [Accounts].[Accounts].[AccountNo]
        * 
          [AccountResponsible].[AccountResponsible].[AccountNo]
       ,
          [Accounts].[Accounts].Properties("key")
        = 
          [AccountResponsible].[AccountResponsible].Properties("key")
      )
     ,[AccountResponsible].[Responsible].&[MSA]
    )
 }
 ,[Accounts].[Accounts]  //<<HIERARCHY YOU WISH TO EXTRACT
) ON 1
FROM mycube;