Ssas SSA使用层次结构而不将其放入选择

Ssas SSA使用层次结构而不将其放入选择,ssas,olap,Ssas,Olap,我们在时间维度中有一个层次结构,我们试图使用该维度的层次结构获取一些数据,但我们不想将层次结构放在where子句中。 代码如下: with member Measures.last_month as sum( ParallelPeriod( [TIME].[Periods].[Level 06],1 ), [Ims Units]) select {[Ims Units],last

我们在时间维度中有一个层次结构,我们试图使用该维度的层次结构获取一些数据,但我们不想将层次结构放在where子句中。 代码如下:

with

member Measures.last_month as   
        sum(
        ParallelPeriod(
                [TIME].[Periods].[Level 06],1
        ), 
        [Ims Units])
select 

    {[Ims Units],last_month} on columns,
     [TIME].[Periods].[Level 06].members on rows
from [Analyzer cube]
它返回所有月份,特别是:

2011年2月:47271个在[国际监测系统单元]上,51103个在上个月

2011年3月:55293个在[国际监测系统单元]上,47271个在上个月

但是如果我添加WARE子句并删除select子句中的层次结构:

with

member Measures.last_month as   
        sum(
        ParallelPeriod(
                [TIME].[Periods].[Level 06],1
        ), 
        [Ims Units])
select 
    {[Ims Units],last_month} on columns
from [Analyzer cube]
where [TIME].[MONTH NAME].&[201103 March]
它表明:

2011年3月:55293在[国际监测系统单元]上,上个月为空

我们在上个月有空值,因为它已被时间维度过滤。 有没有办法在不将层次结构放在select子句和where子句上并仍然使用PARALLEPERIOD函数的情况下获取上个月的数据?(ParallelPeriod的使用只是一个示例)

谢谢,
Francisco

如果要在计算成员中引用时间维度,它需要上下文,上下文来自于行、列、WHERE子句或计算表达式中明确指定的内容。表达式没有其他方法可以知道它的起点是什么,以便计算并行周期,或者计算确定相对于另一个时间点(显示在行、列或WHERE子句上)的时间点的任何函数