0

私は本「MDXステップバイステップ」を学んでいます。私は例に従っていて、EXISTINGを理解する方法に関してこの質問があります。私は(私が思うに)以下の1と2を理解していますが、3を理解していません。

注:スクリーンショットは完全ではありませんが、アイデアを得ることができます。

1すべての製品の上位5つの再販業者の売上を返し、4つのカテゴリとクロスジョインするだけです。これは望ましくありません。上位5つの製品が繰り返されていることがわかります。

    SELECT
    {([Measures].[Reseller Sales Amount])} ON COLUMNS,      
    ([Product].[Category].[Category].Members) *
    Generate(
        {[Product].[Category].[Category].Members},
         TopCount(
             {[Product].[Product].[Product].Members},
            5,
            ([Measures].[Reseller Sales Amount])
        ),
        ALL
    ) ON ROWS
    FROM [Step-by-Step]

ここに画像の説明を入力してください

2ここで、EXISTINGを追加すると、4つのカテゴリのそれぞれについて上位5つの再販業者の売上が返されます。これは正しいことです。

    SELECT
    {([Measures].[Reseller Sales Amount])} ON COLUMNS,      
    ([Product].[Category].[Category].Members) *
    Generate(
        {[Product].[Category].[Category].Members},
         TopCount(
             EXISTING {[Product].[Product].[Product].Members},
            5,
            ([Measures].[Reseller Sales Amount])
        ),
        ALL
    ) ON ROWS
    FROM [Step-by-Step]

ここに画像の説明を入力してください

3これが私の質問です。私は存在をトップカウントに置きました、何が起こったのかを理解する方法は?

    SELECT
    {([Measures].[Reseller Sales Amount])} ON COLUMNS,      
    ([Product].[Category].[Category].Members) *
    Generate(
        {[Product].[Category].[Category].Members},
        EXISTING TopCount(
            {[Product].[Product].[Product].Members},
            5,
            ([Measures].[Reseller Sales Amount])
        ),
        ALL
    ) ON ROWS
    FROM [Step-by-Step]

ここに画像の説明を入力してください

4

1 に答える 1

0

MDX演算子Existingは、セル評価のコンテキストをローカルで変更しています。機能や対策に「深く」は入りません。最後のシナリオでは、TopCountの結果にのみ影響しますが、評価するものがないため、影響はありません。

タプルコンテキストを変更する関数ではないのは残念です。たとえば、次のようになります。

 CubeContext( ...)  -> where ... is evaluated witht the slicer.
于 2013-02-27T08:39:15.930 に答える