2

異なる行で 2 つの異なるトップカウントを取得しようとしていますが、どこかで間違っていると思いますか?

select{
([Measures].[Invoiced_DAm])
} on columns,

    topcount(
        [07 Prod].[Product_Descr].children
        ,10
        ,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2008])
    ),
    topcount(
        [07 Prod].[Product_Descr].children
        ,10
        ,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2009])
    ) on rows
4

1 に答える 1

1

それを機能させる方法は、中括弧の間に TOPCOUNT 操作を配置するだけです{ }

select{
([Measures].[Invoiced_DAm])
} on columns,
{
    topcount(
        [07 Prod].[Product_Descr].children
        ,10
        ,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2008])
    ),
    topcount(
        [07 Prod].[Product_Descr].children
        ,10
        ,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2009])
    )
} on rows

なんで?これは、MDX がセットを区別する方法であるためです。タプルが明示的にリストされている場合は常に、タプルを中かっこで囲む必要があります。TOPCOUNT 関数は (この場合) Product ディメンションから上位 10 個のタプルを返します。

あなたの場合TOPCOUNT(...), TOPCOUNT(...)、MDXには何も意味しません(コンマで区切られた2つのセットまたはタプルのリスト)。

{TOPCOUNT(...), TOPCOUNT(...)}は、2 つの TOPCOUNT ステートメントからの行のセットを表示することを MDX に指示するため、セットのセットを宣言します。これはそれ自体がセットです。

于 2013-03-15T11:07:34.573 に答える