如何始终查找计算成员的父级

时间:2013-11-28 15:03:23

标签: mdx

这似乎很合乎逻辑:

WITH 
MEMBER [Date].[Date - Calendar Month].[Calendar Year].&[2013].[LastMth] AS
    IIF(
       Day(Now()) = 1,
       TAIL([Date].[Date - Calendar Month].[Calendar Month],2).Item(1),
       TAIL([Date].[Date - Calendar Month].[Calendar Month],2).Item(0)
       )
SELECT
    NON EMPTY 
    {
        [Date].[Date - Calendar Month].[LastMth],
        [Date].[Date - Calendar Month].[LastMth].PARENT
    }
    ON COLUMNS,
    NON EMPTY 
    [Measures].[BillableIncome]
    ON ROWS 
FROM [ourCube]

我在脚本的第一行指定了计算成员的父级 - 因此我的成员LastMth将2013作为其父级,并且确定结果集将返回2013年以及上个月的总计。

如果我在第一行创建了它的父2012:

 WITH 
    MEMBER [Date].[Date - Calendar Month].[Calendar Year].&[2012].[LastMth] AS
        IIF(
...
...

......它并不担心我从(2013年)获得LastMth的地方,并按照指示使2012年成为父母 - 这种行为有些奇怪但可以理解。

以下内容为父级返回一个空集 - 我认为父级是[Date].[Date - Calendar Month].[(All)]?什么是父母,我怎样才能揭露它的价值?

WITH 
MEMBER [Date].[Date - Calendar Month].[LastMth] AS
    IIF(
       Day(Now()) = 1,
       TAIL([Date].[Date - Calendar Month].[Calendar Month],2).Item(1),
       TAIL([Date].[Date - Calendar Month].[Calendar Month],2).Item(0)
       )
SELECT
    NON EMPTY 
    {
        [Date].[Date - Calendar Month].[LastMth],
        [Date].[Date - Calendar Month].[LastMth].PARENT
    }
    ON COLUMNS,
    NON EMPTY 
        [Measures].[BillableIncome]
    ON ROWS 
FROM [ourCube]

1 个答案:

答案 0 :(得分:1)

如果您没有为计算成员说明父级,则会获得All成员的兄弟,而不是其子级。

顺便说一句:我发现大多数客户端工具(包括Excel)不希望All有兄弟姐妹,因此如果你create计算脚本中的计算成员(而不是仅仅)在语句的WITH子句中定义它,不显示这些,即使它们被指示显示计算成员。