0

MDX を生成するクエリ ビルダー アプリケーションを開発しており、以下を使用してキューブから顧客数を取得しようとしていますが、これは問題なく動作します。

WITH MEMBER MEASURES.X AS (
    { [Customer].[Gender].[Female]}, 
    [Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]

ただし、ユーザーが次のような顧客に関係のないディメンションをドラッグした場合:

WITH MEMBER MEASURES.X AS (
    { [Customer].[Gender].[Female]}, 
    { [Employee].[Status].[Active], [Employee].[Status].[Inactive]},  
    [Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]

カウント結果が明らかに不正確になります。

生成された MDX クエリから除外できるように、ディメンションが顧客に関連しているかどうかを判断する方法はありますか?

4

2 に答える 2

1

この情報は、 AMOを介してキューブから取得できます。このCubeクラスには、必要なすべてのキューブメタデータが含まれています。

于 2011-06-15T03:55:39.120 に答える
1

Exists( Set_Expression1 , Set_Expression2 [, MeasureGroupName] )関数を使用して問題を解決しました。どのディメンションが関連しているかを手動で判断する必要はありません。Exists関数は無関係なタプルを除外 { [Customer].[Customer].Children, [Customer].[Gender].[Female]}し、カウント オーバーを実行するセットのみを残します。

MDX は次のとおりです。

WITH MEMBER MEASURES.X AS Exists(
    [Customer].[Customer].Children,
    {[Customer].[Gender].[Female]}
    *
    {[Employee].[Status].[Active], [Employee].[Status].[Inactive]}
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]
于 2011-06-15T17:01:50.577 に答える