我们在时间维度中有一个层次结构,我们尝试使用维度的层次结构获取一些数据,但我们不希望将层次结构放在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月:[ims units]上的47271和last_month上的51103
2011年3月:[ims units]上的55293和last_month上的47271
但是如果我添加了be子句并删除了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月:[ims units]上的55293,以及last_month上的null
我们在last_month上有null,因为它已被过滤了时间维度。 有没有办法在没有将层次结构放在select子句上并且在where子句上并且仍然使用parallelperiod函数的情况下获得上个月? (使用ParallelPeriod只是一个例子)
谢谢, 旧金山
答案 0 :(得分:0)
如果要在计算成员中引用时间维度,则需要上下文 - 这将来自行,列,WHERE子句或计算表达式中明确指定的任何内容。表达式没有其他方式可以知道它的起点是什么,以便计算并行周期,或任何确定相对于另一个时间点(出现在行,列或WHERE子句中)的时间点的函数。