Ssas 在单元格集的上下文中添加更多信息

Ssas 在单元格集的上下文中添加更多信息,ssas,mdx,Ssas,Mdx,我希望能够使用字符串在其任何级别内搜索[员工部门]层次结构:下面的操作确定并查找与字符串“Control”相关的所有成员 现在,我尝试添加一个交叉连接,以便始终可以看到每行的部门名称,然后查看部门的订单。如果注释的部分没有注释,我很遗憾得到了一个完整的笛卡尔积-我只想要过滤器找到的成员上下文中的部门-这可能吗 WITH MEMBER [Measures].[LevelName] AS [Employee].[Employee Department].Level.Name

我希望能够使用字符串在其任何级别内搜索
[员工部门]
层次结构
:下面的操作确定并查找与字符串“Control”相关的所有成员

现在,我尝试添加一个交叉连接,以便始终可以看到每行的部门名称,然后查看部门的订单。如果注释的部分没有注释,我很遗憾得到了一个完整的笛卡尔积-我只想要过滤器找到的成员上下文中的部门-这可能吗

WITH 
    MEMBER [Measures].[LevelName] AS
        [Employee].[Employee Department].Level.Name
    MEMBER [Measures].[LevelNumber] AS
        [Employee].[Employee Department].Level.Ordinal
   SET [Set_TargetEmp] AS
        {
        FILTER(
            [Employee Department].AllMembers,
                (
                InStr(
                    1, 
                    [Employee].[Employee Department].currentmember.name, 
                    "Control") <> 0
                ) 
            )
        }
SELECT
//  ORDER(
//      [Department].members,
//      [Department].[Department].MEMBERVALUE
//      ) 
//  *
    ORDER(
        DESCENDANTS(
            [Set_TargetEmp],
            [Employee].[Employee Department].[Department],
            SELF_BEFORE_AFTER
            ),
        [Measures].[LevelNumber],
        BASC
    ) as X
    ON 1,
    {
    [Measures].[LevelName],
    [Measures].[LevelNumber] 
    } ON 0
FROM [Adventure Works]
与
成员[度量][LevelName]为
[员工][员工部门].Level.Name
成员[度量][LevelNumber]为
[员工][员工部门].Level.Ordinal
将[SET_TargetEmp]设置为
{
滤器(
[员工部门]。所有成员,
(
仪表(
1.
[员工][员工部门].currentmember.name,
“控制”)0
) 
)
}
挑选
//命令(
//[部门],各位委员:,
//[部门][部门].MEMBERVALUE
//      ) 
//  *
命令(
后代(
[Set_TargetEmp],
【员工】【员工部门】【部门】,
自我之前,自我之后
),
[措施][LevelNumber],
巴斯克
)as X
1日,,
{
[Measures][LevelName],
[措施][LevelNumber]
}在0
来自[冒险作品]

假设您使用
部门
部门维度,并且
员工部门
位于另一个名为
员工
的维度中,则会得到一个叉积。Analysis Services仅在同一维度中应用“自动存在”。跨维度,必须明确应用此逻辑,如下所示:

   ORDER(
      Exists([Employee].[Department Name].[Department Name].members,
             [Set_TargetEmp]
            ),
      [Department].[Department].MEMBERVALUE
      )
因为代码中的注释块应该提供您想要的内容


如果您有多个与部门和员工维度相关的度量值组,则应说明要用作
Exists
的第三个参数的度量值组的名称。这是一个字符串参数,因此该名称应包含在引号中。

+1@FrankPI。。。很高兴你回来了:希望你享受你的节日假期-2014年一切顺利。出于兴趣,弗兰克-我开始引用使用
[AdventureWorks]
的脚本,希望其他MDX用户也能拥有这个多维数据集,但从你的帖子中听起来好像不是这样。我有AdventureWorks多维数据集可用(但实际上只是在我脑海中发帖,没有执行任何MDX代码)。然而,使用AdventureWorks是一个好主意,因为这样很容易在发布前运行语句并检查结果,以防需要尝试一点。@FrankPI-hmmm-仍然无法使其发挥作用。在上述操作之前,似乎会给我带来意想不到的结果。我将写一个进一步的问题。@FrankPI…所以退一步,我发布了t下面是使用db
AdventureWorksDW2012多维EE的示例,希望您能提供帮助: