このDrillhrough回避策を使用する代わりに、MDXコマンドを使用してSSASキューブから単純なグリッド(基本的にSQL selectステートメントのように見える)を表示するより良い方法はありますか?
これが私がこれまで使ってきたものです:
DRILLTHROUGH
Select
([Measures].[Some Measure]) on columns
From (
Select
{
[PeriodSpan].&[201301] : [PeriodSpan].&[201304]
}
on columns
From [CubeName]
)
RETURN
[$Dimension1].[Attribute1],[$Dimension1].[Attribute2],[$Dimension1].[Attribute3],[$Dimension1].[Attribute4],[$Dimension1].[Attribute5],
[$Dimension2].[Attribute1],[$Dimension2].[Attribute2],[$Dimension2].[Attribute3],
[$Dimension3].[Attribute1],[$Dimension3].[Attribute2],[$Dimension3].[Attribute3],[$Dimension3].[Attribute4],
IIF([Dimension4].[Attribute1]=[Dimension4].[Attribute1].&[False],[Dimension4].[Attribute2],[Dimension4].[Attribute3])
問題は、IFF条件を機能させる方法がわからないことです。コマンドを実行しようとすると、「IIF MDX 関数に渡された引数が多すぎます。引数は 1 つしか許可されません。」というエラー メッセージが表示されます。また、計算スクリプトを使用して、キューブ レベルで新しいメンバーを作成しようとしました。
SCOPE (some hierarchy here which I'm still not clear on how to use);
IF [$Dimension4].[Attribute1] IS [$Dimension4].[Attribute1].&[False] THEN this = [Dimension4].[Attribute2] END IF;
IF [$Dimension4].[Attribute1] IS [$Dimension4].[Attribute1].&[True] THEN this = [Dimension4].[Attribute3] END IF;
END SCOPE
計算メンバーと名前付きセットも試しましたが、結果はありませんでした。
私は SSAS と MDX にかなり慣れていませんが、私が達成しようとしていることを理解していただければ幸いです。前もって感謝します。どんな助けでも大歓迎です。