web-dev-qa-db-ja.com

MDXクエリを使用してディメンションメンバーを一覧表示する

各メンバーのデフォルトのメジャーをフェッチせずにディメンションメンバーを一覧表示する方法はありますか?

15
Žygimantas

データなしでクエリを実行する方法は次のとおりです。

WITH MEMBER Measures.Amount AS 0 
SELECT { 
   [-dimensionName-].[-hierachyName-].Members 
} ON COLUMNS 
FROM [-cubeName-]

しかし、SQLプロファイラーでBIDSが機能するのを見た後、私は

SELECT { 
   [-dimensionName-].[-hierachyName-].Members 
} ON COLUMNS 
FROM [$-dimensionName-]

例えば.

SELECT { Organization.Organization.Members } ON COLUMNS FROM [$Organization]

このルートに意図しない副作用があるかどうかはわかりませんが、データを気にせずにコンテンツを階層的にダンプしたい場合は、別のオプションです。

1
Zoltan Grose

MDXの代わりに次のSQL構文を使用して、SQL Server 2008からMagnusが言及しているカタログビュー(ちなみに ここに記載されています )にアクセスできます。

SELECT *
  FROM $system.MDSCHEMA_MEMBERS
 WHERE ...

Analysis Servicesが理解できるSQLには制限があります。結合は不可能であり、WHERE条件には、ANDを介して接続された[HIERARCHY_UNIQUE_NAME] = '[Date].[Order Date]'のような句のみを含めることができます。 GROUPBYおよびORDERBYはサポートされていません。それでも、キューブのメタデータをクエリすることはできます。

Analysis Servicesへのアクセスに使用しているインターフェイスによっては、これらのメタデータがセルセット形式ではなく結果セット形式で返されるため、問題が発生する可能性があります。

1
FrankPl

ADOMD Catalogオブジェクトを使用して、キューブに問い合わせ、キューブのメジャー/ディメンションなどを確認できます。これには、MDXはまったく含まれていません。

0
Magnus Smith