時間ディメンションに階層があり、ディメンションの階層を使用してデータを取得しようとしますが、階層を 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
しかし、were 句を追加して 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 の使用は単なる例です)
ありがとう、フランシスコ