2009-05-12 12 views
0

OLAPキューブから特定のアーティクルを取得するためにMDXクエリを作成しました。基本的には、特定の製造業者によって製造されている特定の記事・カテゴリノード以下の記事を返します。MDXクエリでの並べ替えとページング(MS Analysis Services)

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等)
  • (アルゴンLONGNAMEなど)ソート列
  • (昇順など)ソート方向

どのようなアプローチをとるべきですか?私はSubsetorder節を見ました。しかし、基本的に結果はクエリの階層化された部分から制限されていました。最終結果の代わりに階層を切り捨てることを意味します。

ページングと仕分けのヒントを教えてください。

答えて

1

並べ替えはMDXの痛みであり、少なくとも私がいつもそれについて感じたことである。クエリの行数と列数が1つの場合、クエリの作業がはるかに簡単になります。

ORDERキーワードは、セットに適用することができます。並べ替えるには番号を付けるだけで、ASCまたはDESCと一緒に行く方法を教えてください。

BASCまたはBDESCも指定できるので、ASCまたはDESCの問題が混乱します。 "B"は "ブレーク"を意味し、行(または列)を階層グループ内でソートするかどうか、またはソート時に階層を完全に破棄して行全体を並べ替えるかどうかを示します。ここで

は、簡単な例

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

だこれは総売上高の値の昇順ですべての月を一覧表示することを意味します。あなたは階層を破っているので、月は親のYear内にグループ化されず、並べ替え操作で完全に混在することができます。

+0

これは素晴らしい答えです...しかし、ページングについてはどうですか? –

関連する問題