powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX - вопрос
17 сообщений из 17, страница 1 из 1
MDX - вопрос
    #39400267
AlexTank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вычисляемый член, вычисляется просто

Код: sql
1.
iif(([Оборот] > 0) AND ([Contents] > 0), 1, NULL)



Как только я ставлю вычисление доп условия, то запрос уходит в себя и ответа от сервера не приходит
Код: sql
1.
iif(([Оборот] > 0) AND ([Contents] > 0), 1, iif([Contents] > 0,0,NULL))



В чем может быть затык?
...
Рейтинг: 0 / 0
MDX - вопрос
    #39400328
AlexTank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexTank,

Переписал условия так, чтобы два раза одно и тоже не проверялось
И заработало
CASE
WHEN ([Contents] > 0) THEN
CASE
WHEN ([Оборот] > 0) THEN 1 ELSE 0
END
ELSE NULL
END
...
Рейтинг: 0 / 0
MDX - вопрос
    #39400427
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTank,

Вот так громоздко, но может работать быстрее.

Код: sql
1.
    IIF(ISEMPTY([Measures].[X]) OR [Measures].[X] = 0, NULL, ...)
...
Рейтинг: 0 / 0
MDX - вопрос
    #39400624
AlexTank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voroninAlexTank,

Вот так громоздко, но может работать быстрее.

Код: sql
1.
    IIF(ISEMPTY([Measures].[X]) OR [Measures].[X] = 0, NULL, ...)


А в чем разница?
...
Рейтинг: 0 / 0
MDX - вопрос
    #39400648
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTank,

в том что конструкция iif у которой первая часть содержит isempty, а вторая или третья null очень сильно заоптимизирована и работает в block computation mode вместо cell by cell.
...
Рейтинг: 0 / 0
MDX - вопрос
    #39400654
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTank,

добавлю, что к этой конструкции рекомендуется еще и non_empty_behavior прописать на меру которая в isempty.
...
Рейтинг: 0 / 0
MDX - вопрос
    #39400961
AlexTank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShIgorAlexTank,

в том что конструкция iif у которой первая часть содержит isempty, а вторая или третья null очень сильно заоптимизирована и работает в block computation mode вместо cell by cell.
А имеет значение стоит там ISEMPTY или
ISEMPTY([Measures].[X]) OR [Measures].[X] = 0
?
...
Рейтинг: 0 / 0
MDX - вопрос
    #39400981
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTank,
читайте Мошу
все очень подробно
...
Рейтинг: 0 / 0
MDX - вопрос
    #39401642
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

а
Код: sql
1.
  IIF(ISEMPTY([Measures].[X]) OR [Measures].[X] = 0, NULL, ...)


экивалентно
Код: sql
1.
  IIF( [Measures].[X] is null OR [Measures].[X] = 0, NULL, ...)


или таки лучше ISEMPTY() ?
...
Рейтинг: 0 / 0
MDX - вопрос
    #39401744
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavy,

нет. is это логическое сравнение выражений объектов.
типа "объект" является "объектом"
например [Date].[Date].CurrentMember is [Date].[Date].&[20170209]

в случае is null - фактически производится проверка существования такого объекта.

isempty([Date].[Date].CurrentMember) проверяет ячейку: пустая/нет.

опять же читайте Мошу
...
Рейтинг: 0 / 0
MDX - вопрос
    #39401802
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

спасибо!
...
Рейтинг: 0 / 0
MDX - вопрос
    #39401820
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
резюмируя

Код: sql
1.
2.
3.
4.
CREATE MEMBER CURRENTCUBE.[Measures].[XY]
 AS iif(ISEMPTY([Measures].[X] or [Measures].[X] = 0 ,null, [Measures].[Y]/[Measures].[X]), 
NON_EMPTY_BEHAVIOR = { [Measures].[Y] }, 
VISIBLE = 1   ;    



да?
...
Рейтинг: 0 / 0
MDX - вопрос
    #39402061
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavy,

не совсем
NON_EMPTY_BEHAVIOR = { [Measures].[X] }
или если зависит от двух
NON_EMPTY_BEHAVIOR = { [Measures].[X], [Measures].[Y] }

только вопрос когда оба пустые или когда один из них пуст остается открытым в этом случае. не проверял - не было нужды.
...
Рейтинг: 0 / 0
MDX - вопрос
    #39402190
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorтолько вопрос когда оба пустые или когда один из них пуст остается открытым в этом случае. не проверял - не было нужды.

"Меры, указанные в списке Установленное поведение, используются для разрешения запросов NON EMPTY в многомерных выражениях. Если в списке Установленное поведение указана одна или несколько мер, в службах Службы Analysis Services вычисляемый элемент считается пустым, если все указанные меры пусты. Если значение свойства Установленное поведение не указано, в службах Службы Analysis Services проводится оценка вычисляемого элемента с целью определения того, является ли он пустым."
(С)

по идее null/X = Y/null = null

т.е. я понимал это свойство (NON_EMPTY_BEHAVIOR) как оптимизацию, если элемент (X,Y) пустой, а варианты
NON_EMPTY_BEHAVIOR = { [Measures].[X] } / = { [Measures].[Y] } /= { [Measures].[X], [Measures].[Y] }
в общем то равнозначными
...
Рейтинг: 0 / 0
MDX - вопрос
    #39404057
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

не так?
...
Рейтинг: 0 / 0
MDX - вопрос
    #39404115
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavy,

не совсем понял суть последнего вопроса.

вобще-то:
null/X = null
Y/null = inf
null != inf

NEBH - да, это оптимизация, до самого вычисления дело не доходит если оно истинно.
сейчас это свойство в состоянии deprecated, т.к. многие используя его неправильно получали неверные результаты.
Моша об этом тоже писал.

Вам наверное нужно сделать выбор:
вычисление должно быть null если
1. в X null
2. в Y null
3. и в X null, и в Y null
...
Рейтинг: 0 / 0
MDX - вопрос
    #39404847
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

последний вопрос - для привлечения к предпоследнему )
спасибо!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX - вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]