1

以下不会出错,或者bug,只是返回一个空白的结果集。

我意识到我可以使用其他功能,但为了实验,我想坚持使用ClosingPeriod

为什么它返回一个空白?
我如何修改它以使其昨天返回?

WITH MEMBER [Date].[Date - Calendar Month].[member_caption] AS
    ClosingPeriod(
        [Date].[Date - Calendar Month].[Calendar Day]
        ).MEMBER_CAPTION
SELECT 
    NON EMPTY 
        [Date].[Date - Calendar Month].[member_caption]
    ON COLUMNS
FROM [OurCube] 

编辑

ClosingPeriod 函数的 MSDN 文档在此处并指出:

• 如果指定了级别表达式,则 ClosingPeriod 函数使用包含指定级别的维度并返回指定级别的默认成员的后代中的最后一个兄弟。

• 如果同时指定了级别表达式和成员表达式,则 ClosingPeriod 函数返回指定级别的指定成员的后代中的最后一个兄弟。

4

1 回答 1

2

我猜这是因为 [Date].[Date - Calendar Month] 的默认成员不在 [Calendar Day] 级别;所以这相当于:

ClosingPeriod( [Date].[Date - Calendar Month].[Calendar Day], null )

显然 null 没有后代,并且 ClosingPeriod 不返回任何内容。也许你想要类似的东西:

ClosingPeriod( 
  [Date].[Date - Calendar Month].[Calendar Day],
  [Date].[Date - Calendar Month].defaultMember 
)
于 2013-07-18T10:36:09.263 回答