首页 > 解决方案 > 层次结构和维度属性之间的 CROSSJOIN 是否可能?

问题描述

我目前正在使用 MDX 显示代理分支层次结构的后代,直至代理名称级别:

UNION (
{DESCENDANTS ([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Retail],5,SELF_AND_BEFORE) }
,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Digital],5, SELF_AND_BEFORE)}        
,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Telesales],5, SELF_AND_BEFORE)}  
,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Head Office],5, SELF_AND_BEFORE)} 
)

但是,我想AgentEmployeeNumber在代理名称旁边显示。AgentEmployeeNumber不是其中的一部分,AgentBranch Hierarchy我似乎无法找到将两者交叉连接在一起的方法,这可能吗?我提供了以下代理维度结构的片段:

代理维度

标签: ssasmdx

解决方案


*您可以对(我假设)这样的行使用交叉连接(缩写形式为):

SELECT
    {} // add whatever you want, I assume you have measures here
    ON COLUMNS,
    UNION (
        {DESCENDANTS ([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Retail],5,SELF_AND_BEFORE) }
        ,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Digital],5, SELF_AND_BEFORE)}        
        ,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Telesales],5, SELF_AND_BEFORE)}  
        ,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Head Office],5, SELF_AND_BEFORE)} 
    )
    *
    [Agent].[Agent Employee Number].[Agent Employee Number].Members
ON ROWS
FROM [Your Cube]

不利的一面是,对于Agent Branch Hierarchy非单一代理级别的成员,您将获得很多号码。解决此问题的一种方法是计算度量,您将其放在列上:

WITH MEMBER Measures.[Employee Number] AS
     IIf(
         (EXISTING [Agent].[Agent Employee Number].[Agent Employee Number].Members).Count = 1,
         (EXISTING [Agent].[Agent Employee Number].[Agent Employee Number].Members).Item(0).Item(0).Name,
         NULL
     )
SELECT
    Measures.[Employee Number] // add whatever you want, I assume you have measures here
    ON COLUMNS,
    UNION (
        {DESCENDANTS ([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Retail],5,SELF_AND_BEFORE) }
        ,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Digital],5, SELF_AND_BEFORE)}        
        ,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Telesales],5, SELF_AND_BEFORE)}  
        ,{DESCENDANTS([Agent].[Agent Branch Hierarchy].[Agent Business Division].&[Head Office],5, SELF_AND_BEFORE)} 
    )
ON ROWS
FROM [Your Cube]

成员定义或多或少声明:“如果当前Agent Branch Hierarchy成员的员工编号集合只有一个元素,则将第一个(也是唯一一个)元素的名称作为度量值。请注意,计算的度量可以返回字符串,并且不一定需要是数字。


推荐阅读