Список элементов измерения с запросом MDX

Есть ли способ для перечисления элементов измерения без выборки по умолчанию. Измерение для каждого члена?

Ответ 1

Вы не можете выбрать ничего на противоположной оси:

SELECT
  { } on 0,
  { DESCENDANTS([Dimension].[Hierarchy]) } on 1
FROM [Cube]

ВЫБОР пустого набора не позволяет SSAS добавлять меру по умолчанию на противоположную ось.

Ответ 2

Вы можете получить доступ к представлениям каталога, которые упоминает Magnus (которые, кстати, описаны здесь), из SQL Server 2008 с использованием следующего синтаксиса SQL вместо MDX:

SELECT *
  FROM $system.MDSCHEMA_MEMBERS
 WHERE ...

SQL, понимаемый службами Analysis Services, ограничен: не существует объединений, и условие WHERE может содержать только такие предложения, как [HIERARCHY_UNIQUE_NAME] = '[Date].[Order Date]', подключенные через AND. GROUP BY и ORDER BY не поддерживаются. Но, тем не менее, вы можете запросить метаданные куба.

В зависимости от интерфейса, который вы используете для доступа к Analysis Services, могут возникнуть некоторые проблемы, так как эти метаданные возвращаются в формате набора результатов, а не в формате сотового набора.

Ответ 3

Я использовал запрос без данных:

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

Но после просмотра работы BIDS в SQL Profiler я узнал о

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

например.

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

Не уверен, что есть непредвиденные побочные эффекты этого маршрута, но если вы просто хотите сбросить содержимое иерархии, не беспокоясь о данных, это еще один вариант.

Ответ 4

Вы можете использовать объект ADOMD Catalog для опроса куба и выяснить, какие меры/измерения он имеет и т.д. Это вообще не связано с MDX.