Я пытался изучить кубы SSAS и MDX. До сих пор мне удалось создать куб, который возвращает правильные данные / вычисления при просмотре через браузер куба.
Query Builder использовался для создания запроса в службах отчетов для запроса куба. Я посмотрел на сгенерированный MDX и вытащил материал, который, похоже, не имеет значения для реальных результатов. Запрос выглядит так:
SELECT NON EMPTY { [Measures].[AverageConnectedSeconds] } ON COLUMNS,
NON EMPTY { ([Operator].[ACCESS DEF].[ACCESS DEF].ALLMEMBERS * [Calls].[Notification Time Bands].[Notification Time Bands].ALLMEMBERS) } ON ROWS
FROM ( SELECT ( -{ [Calls].[Notification Time Bands].&[0] } ) ON COLUMNS
FROM ( SELECT ( { [Calls].[Incoming YN].[N] } ) ON COLUMNS
FROM ( SELECT ( -{ [Calls].[Entity Type].&[6] } ) ON COLUMNS
FROM ( SELECT ( -{ [Calls].[Reason Text].&[Background Call] } ) ON COLUMNS
FROM ( SELECT ( { STRTOMEMBER(@OperatorId) } ) ON COLUMNS
FROM [PNC5data] )))))
Я прочитал о синтаксисе, и я THINK Я понимаю, почему запрос выполняет вложенные выборки.
Правильно ли я понимаю, что вложенные операторы SELECT FROM действуют как предложение WHERE в SQL?
Если так: Для чего используется предложение WHERE в MDX и когда / почему я должен его использовать?
Если кто-нибудь сможет дать мне представление о том, что на самом деле происходит в этом запросе, я буду очень признателен! Или, если вы сможете направить меня к ресурсу, я смогу углубить мое понимание MDX, я был бы очень рад!
Спасибо
Джеймс