Как написать динамический MDX-запрос
Самородов Федор Анатольевич: Как написать динамический MDX-запрос
Все умеют писать динамические SQL-запросы. Составляем строку и передаём её команде EXECUTE или процедуре sp_ExecuteSQL:
Многие также в курсе, чем эти два способа различаются. А что насчёт динамических MDX-запросов?
Ведь в языке MDX синтаксические ограничения заметно более суровы, чем в SQL, и без динамического формирования MDX-выражений бывает тяжело.
Для работы с динамическими запросами в MDX имеется целый набор функций, названия которых начинаются с "StrTo":
- StrToMember
- StrToSet
- StrToTuple
- StrToValue
В отличие от языка SQL, при работе с многомерными базами данных мы строим динамически не весь запрос целиком, а отдельные его части: член размерности, перечисление, кортеж или скалярное значение.
Для использования динамической адресации члена размерности используйте функцию StrToMember:
Синтаксически корректное перечисление можно сконструировать функцией StrToSet:
StrToTuple поможет собрать кортеж из координат или из их частей:
А StrToValue позволяет интерпретировать выражение как ячейку:
Подобные динамические конструкции могут пригодиться вам при параметризации MDX-запросов или при индивидуальной нарезке куба с привязкой к текущему пользователю.
Подробнее об этом Вы сможете узнать на курсе: М50578A: Язык запросов MDX для аналитических служб SQL Server (OLAP)