Ответ 1
Вы не можете выбрать ничего на противоположной оси:
SELECT
{ } on 0,
{ DESCENDANTS([Dimension].[Hierarchy]) } on 1
FROM [Cube]
ВЫБОР пустого набора не позволяет SSAS добавлять меру по умолчанию на противоположную ось.
Есть ли способ для перечисления элементов измерения без выборки по умолчанию. Измерение для каждого члена?
Вы не можете выбрать ничего на противоположной оси:
SELECT
{ } on 0,
{ DESCENDANTS([Dimension].[Hierarchy]) } on 1
FROM [Cube]
ВЫБОР пустого набора не позволяет SSAS добавлять меру по умолчанию на противоположную ось.
Вы можете получить доступ к представлениям каталога, которые упоминает 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, могут возникнуть некоторые проблемы, так как эти метаданные возвращаются в формате набора результатов, а не в формате сотового набора.
Я использовал запрос без данных:
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]
Не уверен, что есть непредвиденные побочные эффекты этого маршрута, но если вы просто хотите сбросить содержимое иерархии, не беспокоясь о данных, это еще один вариант.
Вы можете использовать объект ADOMD Catalog
для опроса куба и выяснить, какие меры/измерения он имеет и т.д. Это вообще не связано с MDX.