Essbase SQL Interface (for Oracle) ч.2

Пишем MDX запрос

Для экспериментов возьмем базу Sample.Basic, она есть в каждой инсталляции и для опытов подходит наилучшим образом.
Какие есть особенности, которые нужно учитывать при разработке

1) Предполагается, что последняя колонка возвращаемого множества данных, содержит вещественное значение.
2) Я привык, что следующими колонками (с право на лево ) идут аналитики – “Account”, “Period”, “Other Sparce”.
3) Так как для MDX обязательно указывать значение аналитики, которое будет в «колонках», то данная аналитика «выпадает» из результирующего множества, поэтому, что бы выбрать все данные, нужно перебирать все элементы такой аналитики, либо ввести в модель «точку разворота» (фейковое направление с единственным элементом.
Для Sample.Basic я выбрал аналитику Scenario

SELECT NON EMPTY {( [Actual])} ON COLUMNS,
NON EMPTY
CrossJoin (CrossJoin ([Product].children, [Market].children),
CrossJoin([Year].Children, [Measures].children))
ON ROWS
FROM Sample.Basic

Что нужно еще знать об MDX , для Analytic Provider Services
1) Не все формулы и функции MDX работоспособны через Provider Services, поэтому собранный в EAS запрос, нужно проверить на общую работоспособность.

2) APS это java приложение , которое имеет свои ограничения, поэтому не нужно строить запросы возвращающие миллионы строк, оптимально до 3 тысяч , максимально до 25 000

3) APS вносит свое в работу MDX, и я наблюдал падение Essbase от запроса, который в EAS работал без проблем.