
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
18.07.2017, 17:46
|
|||
|---|---|---|---|
MDX запрос работает в 2008 но не работает в 2016 |
|||
|
#18+
Здравствуйте! Если кто-то сталкивался или знает в чем может быть причина пожалуйста помогите, подскажите. Если совсем кратко - то один и тот же mdx запрос в вресии SSAS 2008 работает а в 2016 версии нет. Выдается вот такая ошибка : Ошибка выполнения управляемой хранимой процедуры DATEADD: Microsoft::AnalysisServices::AdomdServer::AdomdException. В рекурсивных вычислениях глубокой вложенности невозможен вызов хранимой процедуры CLR. Если детально то мы используем SSAS как источник для отчетов Tableau. Tableau сам генерирует mdx запросы исходя из своих алгоритмов и мы на это никак влиять не можем. Плюс в Tableau можно с помощью изменения default data type атрибута измерения отвечающего за время на тип Date использовать его не как список значений а как относительный фильтр по дате - то есть выбирать либо период с помощью фильтра с двумя ползунками либо сделать фильтр типа "последние N дней, месяцев и т.п." Вобщем все работало отлично на 2008, на 2016 при использовании этих фильтров по датам В КОМБИНАЦИИ с какими-то друшими фильтрами по атрибутам других измерений выдается выше приведенная ошибка. Вот пример запроса : WITH MEMBER [Measures].[LEVEL INSTANCE none:Filter Date:qk - lev00] AS 'CASE WHEN IsEmpty([Timeline].[Filter Date].CurrentMember.MemberValue) OR [Timeline].[Filter Date].CurrentMember.MemberValue = null THEN null ELSE CDate([Timeline].[Filter Date].CurrentMember.MemberValue) END', SOLVE_ORDER = 127 SELECT {[Measures].[Headcount]} DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_CAPTION] ON COLUMNS, NON EMPTY CROSSJOIN( Union( [Business Unit Active Structure].[Structure].[Level 02].AllMembers, Union( {[Business Unit Active Structure].[Structure].&[{6A63A0B7-196C-4CE2-A832-A65E00E872D2}]:[Business Unit Active Structure].[Structure].&[{C306AD38-A43D-4060-BD30-A5B601659E34}]}, {[Business Unit Active Structure].[Structure].&[{43B1622C-0768-4FE4-A977-C35E2D45FBB2}], [Business Unit Active Structure].[Structure].&[{213AA134-4E0F-43AF-9BD8-6692DD11561C}], [Business Unit Active Structure].[Structure].&[{6B7CBC6E-FB12-456A-8FB2-9D4A01086D2C}], [Business Unit Active Structure].[Structure].&[{9B229016-036C-4983-BAF1-9D4A010C4C3B}]})), [Timeline].[Financial Years].[Financial Month].AllMembers) DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_CAPTION] ON ROWS FROM [Personnel] WHERE StripCalculatedMembers(CROSSJOIN( {[Business Unit Active Structure].[LXTDGT].&[Yes]}, Filter( [Timeline].[Filter Date].[Filter Date].AllMembers, DATEADD("m",-4,DATEADD("m",DATEDIFF("m",CDate(36526),NOW()),CDate(36526))) <= [Measures].[LEVEL INSTANCE none:Filter Date:qk - lev00] AND [Measures].[LEVEL INSTANCE none:Filter Date:qk - lev00] < DATEADD("m",1,DATEADD("m",DATEDIFF("m",CDate(36526),NOW()),CDate(36526)))))) Видно что в WHERE как раз идет фильтрация по датам. Причем если убрать из WHERE условие {[Business Unit Active Structure].[LXTDGT].&[Yes]} все работает. Но дело даже не в том что при убирании каких-то условий из запроса он работает. Дело в том что в 2008 версии все работает! Что такого сделали в SSAS 2016 что теперь не работает нифига? Спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=49&mobile=1&tid=1858177]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 263ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...