1

私はSSASキューブとMDXを学ぼうとしています。これまでのところ、キューブブラウザで表示したときに正しいデータ/計算を返すキューブを作成することができました。

クエリビルダーを使用して、レポートサービスでクエリを作成し、キューブにクエリを実行しました。これによって生成されたMDXを確認し、実際の結果に影響を与えないと思われるものを取り出しました。クエリは次のようになります。

SELECT NON EMPTY { [Measures].[AverageConnectedSeconds] } ON COLUMNS,    
NON EMPTY { ([Operator].[ACCESS DEF].[ACCESS DEF].ALLMEMBERS * [Calls].[Notification Time Bands].[Notification Time Bands].ALLMEMBERS) } ON ROWS    
FROM ( SELECT ( -{ [Calls].[Notification Time Bands].&[0] } ) ON COLUMNS    
FROM ( SELECT ( { [Calls].[Incoming YN].[N] } ) ON COLUMNS    
FROM ( SELECT ( -{ [Calls].[Entity Type].&[6] } ) ON COLUMNS   
FROM ( SELECT ( -{ [Calls].[Reason Text].&[Background Call] } ) ON COLUMNS    
FROM ( SELECT ( { STRTOMEMBER(@OperatorId) } ) ON COLUMNS   
FROM [PNC5data] )))))

構文を読みクエリがネストされた選択を実行している理由を理解していると思います。ネストされたSELECTFROMがSQLでWHERE句として機能していることを理解していますか?

もしそうなら:MDXで使用されるWHERE句は何ですか?いつ/なぜそれを使用するのですか?

誰かがこのクエリで実際に起こっていることの内訳を教えてくれるなら、私は本当に感謝しています!または、MDXの理解を深めることができるリソースに私を導くことができれば、私は素晴らしいと思います!

ありがとう、

ジェームズ

4

2 に答える 2

5

WHERE句を理解するのは簡単です。多くの情報源で、人々がその誤解を招く名前について不平を言っていることがわかります。使用するのに適した名前はSlicerです。where句を使用すると、キューブ全体ではなくキューブのスライスをクエリできます(キューブ全体ではなくスライスをクエリすると、明らかにパフォーマンスが向上します)。

FROM句は、キューブをクエリするため、または別のMDXクエリ(サブクエリ)をクエリするために使用されます。サブクエリは一般的に低速ですが、より強力です。たとえば、階層をスライサーとして使用する場合、軸で使用することはできませんが、サブクエリを使用すると、たとえば、サブクエリで階層の構造を変更できます。

上記のステートメントでは、ネストされたサブクエリが表示されます。MDX構文を知っている場合は、各サブクエリを分割して解釈したり、一部をスライサーに移動したりするのは簡単です。

私もOLAPの主題全体に比較的慣れていません。私が使用している2つのソースは、icCube MDXリファレンス(私はMicrosoftファンではないので、icCubeは優れた、使いやすい代替手段でした)とMDXへのファストトラックです。特にMicrosoftBIツールを使用している場合は、MDXの重要な機能と用語(セット、タプル、関数など)の説明がわかりやすいため、MDXへのファストトラックが特に気に入っています。この投稿もご覧ください。

于 2011-01-07T13:10:08.460 に答える
0

以前にMDXの紹介へのリンクを投稿しましたが、好評でしたが、この投稿には他にも多くの優れたリソースがあります。 the-best-mdx-references-on-the-net

于 2011-02-07T13:15:27.777 に答える