0

OLAP キューブから特定の記事を取得するために、MDX クエリを作成しました。基本的に、特定のメーカーによって作成された特定の記事カテゴリ ノードの下にある記事を返します。

SELECT NON EMPTY
(
    Hierarchize
    (
        {
            DrilldownLevel
            (
                {
                    [T DAT Article].[Ar ID].[All]
                }
            )
        }       
    ) 

)

DIMENSION PROPERTIES PARENT_UNIQUE_NAME,
[T DAT Article].[Ar ID].[Ar ID].[Ar Key],
[T DAT Article].[Ar ID].[Ar ID].[Ar LongName] 
ON COLUMNS 
FROM [Catalog_2009]

WHERE 
(
    [T DAT Structure].[St St ID FK].&[193066], -- specific article-category node
    [T DAT Firm].[Fi ID].&[86] -- specific manufacturer
) 

CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS

ここで、このクエリを拡張して、ページングと並べ替えをサポートしたいと考えています。私が提供できる意味:

  • ページ インデックス (0 など)
  • ページサイズ (30 など)
  • 列の並べ替え (Ar LongName など)
  • ソート方向 (昇順など)

どのようなアプローチを取るべきですか? Subsetorder句を見ました。しかし、それらは基本的にクエリの「階層化」部分からの結果を制限しました。つまり、最終結果ではなく階層を切り捨てました..

ページングとソートを機能させる方法を誰かに教えてもらえますか?

4

2 に答える 2

1

ソートはMDXの苦痛であり、少なくともそれは私がいつもそれについて感じていた方法です。クエリのディメンションが行と列に1つしかない場合は、作業がはるかに簡単になります。

ORDERキーワードはセットに適用でき、ソートする番号を指定して、ASCまたはDESCのどちらを使用するかを指定するだけです。

BASCまたはBDESCも指定できるため、ASCまたはDESCの問題は混乱を招きます。「B」は「分割」を意味し、行(または列)を階層グループ内で並べ替えるのか、並べ替え時に階層を完全に解除して行を完全に並べ替えるのかを示します。

これが簡単な例です

ORDER({[Time].[Month].members}, [Measures].[Gross Sales], BASC)

これは、総売上高の昇順ですべての月をリストすることを意味します。月が親の年内にグループ化されたままにならず、並べ替え操作によって完全に混ざり合うことができるように、階層を分割しています。

于 2009-05-19T11:23:12.990 に答える