Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3) / 20 сообщений из 20, страница 1 из 1
26.02.2006, 14:19
    #33565717
Chingachgook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
Всем привет.

кратко о проблеме:
Есть вычисляемый мембер (Количество моделей):

COUNT(nonemptycrossjoin({[Measures].[Остаток]},Descendants([Модель].currentmember,[Модель].levels(1))))

Есть измерение в которое добавлен элемент (не знаю как это по-научному), добавляется он на клиенте (про-кларити):
aggregate({[Длина].&[123], [Длина].&[122] })

вот. CrossJoin этих элементов даёт null, хотя пересечение с [Measures].[Остаток] null Не даёт.

В чём грабли? использовать Count(Filter(CrossJoin(... , >0) не хочу, бо тормозной он безобразно

Заранее спасибо


-------------------------
Киса, я дам вам этот город на разграбление. Вам 3-х дней хватит?
...
Рейтинг: 0 / 0
26.02.2006, 14:57
    #33565814
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
приведите полный MDX, что прокларити генерит
...
Рейтинг: 0 / 0
26.02.2006, 15:03
    #33565825
Беляев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
NonemptyCrossJoin не работает с CM

Владислав Беляев
...
Рейтинг: 0 / 0
26.02.2006, 15:48
    #33565953
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
попробуйте еще вариант с
count(crossjoin(...), excludeempty),
может будет быстрее чем с filter
...
Рейтинг: 0 / 0
26.02.2006, 16:09
    #33566001
Chingachgook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
БеляевNonemptyCrossJoin не работает с CM

Владислав Беляев

в смысле? т.е. это у них фича такая?
...
Рейтинг: 0 / 0
26.02.2006, 16:44
    #33566057
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
это в БОЛе написано ...
...
Рейтинг: 0 / 0
26.02.2006, 17:00
    #33566083
Chingachgook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
ShIgorпопробуйте еще вариант с
count(crossjoin(...), excludeempty),
может будет быстрее чем с filter

быстрее - работает приблизительно в 2 раза быстрее (1 мин), правда вариант с NonEmptyCrossJoin работает приблизительно 3 сек
...
Рейтинг: 0 / 0
26.02.2006, 17:07
    #33566100
Chingachgook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
backfireприведите полный MDX, что прокларити генерит

SELECT
NON EMPTY { { { [NEW_Длина антро].&[119], [NEW_Длина антро].&[121], [NEW_Длина антро].&[120], [<##<MEMBER!user!Короткие+длинные пальто>##>] } *
{
[Диапазон цен Кожа].[Диапазон].&[1],
[Диапазон цен Кожа].[Диапазон].&[2],
[Диапазон цен Кожа].[Диапазон].&[3],
[Диапазон цен Кожа].[Диапазон].&[7],
[Диапазон цен Кожа].[Диапазон].&[8],
[Диапазон цен Кожа].[Диапазон].&[9],
[Диапазон цен Кожа].[Диапазон].&[13],
[Диапазон цен Кожа].[Диапазон].&[14],
[Диапазон цен Кожа].[Диапазон].&[15],
[Диапазон цен Кожа].[Диапазон].&[19],
[Диапазон цен Кожа].[Диапазон].&[20],
[Диапазон цен Кожа].[Диапазон].&[21]
} } } ON COLUMNS ,

NON EMPTY { { { [NEW_Стиль].&[187], [NEW_Стиль].&[188], [<##<MEMBER!user!FB+Спорт>##>] } * { [Measures].[Количество моделей 2], [Measures].[Остаток] } } } ON ROWS

FROM [REST_TODAY]

WHERE ( [Магазины].[Магазин].[Магазин 1], [NEW_Направления].&[90], [NEW_Отделка].&[297], [NEW_Пол].&[164] )
...
Рейтинг: 0 / 0
26.02.2006, 17:11
    #33566112
Chingachgook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
Dmitry Biryukovэто в БОЛе написано ...

простите а могли бы вы название статьи привести или по каким ключевым словам искать. поиск по NonEmptyCrossJoin дайт 2 статьи в которых этого нет.
...
Рейтинг: 0 / 0
26.02.2006, 18:27
    #33566255
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
Chingachgook Dmitry Biryukovэто в БОЛе написано ...

простите а могли бы вы название статьи привести или по каким ключевым словам искать. поиск по NonEmptyCrossJoin дайт 2 статьи в которых этого нет.в первой их них (с заголовком NonEmptyCrossjoin) - "all calculated members are automatically excluded"
...
Рейтинг: 0 / 0
26.02.2006, 21:15
    #33566444
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
Chingachgook backfireприведите полный MDX, что прокларити генерит

SELECT
NON EMPTY { { { [NEW_Длина антро].&[119], [NEW_Длина антро].&[121], [NEW_Длина антро].&[120], [<##<MEMBER!user!Короткие+длинные пальто>##>] } *
{
[Диапазон цен Кожа].[Диапазон].&[1],
[Диапазон цен Кожа].[Диапазон].&[2],
[Диапазон цен Кожа].[Диапазон].&[3],
[Диапазон цен Кожа].[Диапазон].&[7],
[Диапазон цен Кожа].[Диапазон].&[8],
[Диапазон цен Кожа].[Диапазон].&[9],
[Диапазон цен Кожа].[Диапазон].&[13],
[Диапазон цен Кожа].[Диапазон].&[14],
[Диапазон цен Кожа].[Диапазон].&[15],
[Диапазон цен Кожа].[Диапазон].&[19],
[Диапазон цен Кожа].[Диапазон].&[20],
[Диапазон цен Кожа].[Диапазон].&[21]
} } } ON COLUMNS ,

NON EMPTY { { { [NEW_Стиль].&[187], [NEW_Стиль].&[188], [<##<MEMBER!user!FB+Спорт>##>] } * { [Measures].[Количество моделей 2], [Measures].[Остаток] } } } ON ROWS

FROM [REST_TODAY]

WHERE ( [Магазины].[Магазин].[Магазин 1], [NEW_Направления].&[90], [NEW_Отделка].&[297], [NEW_Пол].&[164] )

У вас этот MDX выполняется через MDX sample query? Боюсь, что нет.

Хотя в принципе и так понятно. Я проглядел в вашем первом посте

Код: plaintext
aggregate({[Длина].&[ 123 ], [Длина].&[ 122 ] }) 

Как уже указал г-н Беляев, NECJ не работает с CM. (точка)

При переходе к Юкону у Вас появится аозможность использовать фунцию NonEmpty, которая, если я правильно понял Мошу, берет NECJ если нет CM, а если они есть, то работает по более длинному варианту "...Filter...excludeNonEmpyty..."
...
Рейтинг: 0 / 0
27.02.2006, 08:59
    #33566730
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
2 backfire
Chingachgook в первом же посте указал, что запрос сформирован в ProClarity, да еще и с вычисляемыми членами, которые созданы в нем самом, т.е.
реальный MDX, который будет выполняться через MDX sample query можно увидеть только включив полный лог для ProClarity.
В общем что-то типа этого надо добавить в начало, чтобы получить реальную картину:
Код: plaintext
WITH MEMBER [NEW_Длина антро].[<##<MEMBER!user!Короткие+длинные пальто>##>] \n  AS \'aggregate({[Длина].&[123], [Длина].&[122] })\'\nMEMBER [NEW_Стиль].[<##<MEMBER!user!FB+Спорт>##>] \n  AS \'извините, здесь я не знаю что вычисляется, но вероятно, что суммарный агрегат для 187 и 188 члена этого измерения\' 
backfireПри переходе к Юкону у Вас появится аозможность использовать фунцию NonEmpty, ...
курим до первого сервис-пака, т.к. в 2005 тоже не все гладко:
Ответ Моши на агрегат по DC
...
Рейтинг: 0 / 0
27.02.2006, 11:31
    #33567244
Chingachgook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
backfire
Как уже указал г-н Беляев, NECJ не работает с CM. (точка)

При переходе к Юкону у Вас появится аозможность использовать фунцию NonEmpty, которая, если я правильно понял Мошу, берет NECJ если нет CM, а если они есть, то работает по более длинному варианту "...Filter...excludeNonEmpyty..."

Я всё понял, спасибо. будем тормозить - попробую "лишние измерения выбросить из куба", вычистить DWH и т. д.
...
Рейтинг: 0 / 0
27.02.2006, 11:50
    #33567314
Беляев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
Можете еще комбинацию NECJ + FILTER попробовать:

Код: plaintext
1.
COUNT(nonemptycrossjoin({[Measures].[Остаток]},Descendants([Модель].currentmember,[Модель].levels( 1 )))+FILTER(CROSSJOIN({[Measures].[Остаток]},{<<Ваш CM>>}),([Measures].[Остаток])> 0 ))

Т.е. все считать через NECJ плюс CM, которые считать стандартным способом

Если идея понятна, надеюсь подправите мою формулу как надо

Владислав Беляев
...
Рейтинг: 0 / 0
27.02.2006, 15:09
    #33568145
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
2 Владислав Беляев
мне поясните, я что-то совсем не понял Вашу идею
...
Рейтинг: 0 / 0
27.02.2006, 15:13
    #33568161
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
Как уже указал г-н Беляев, NECJ не работает с CM. (точка) - хе хе
если поставить SP3a то все будет работать.
...
Рейтинг: 0 / 0
27.02.2006, 15:33
    #33568253
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
OLAPMASTERКак уже указал г-н Беляев, NECJ не работает с CM. (точка) - хе хе
если поставить SP3a то все будет работать.
ГДЕ? да неужели? что-то я этого у себя не замечаю...
...
Рейтинг: 0 / 0
27.02.2006, 15:37
    #33568275
Chingachgook
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
не совсем работает так, как хотелось бы. смотрите пост

-------------------------
Киса, я дам вам этот город на разграбление. Вам 3-х дней хватит?
...
Рейтинг: 0 / 0
27.02.2006, 16:25
    #33568431
Беляев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
ShIgor 2 Владислав Беляев
мне поясните, я что-то совсем не понял Вашу идею

Давайте на отвлеченном примере

Предположим у нас есть измерение Dim в нем есть CM Dim.CM
Вы хотите выдать формулу

Код: plaintext
1.
NECJ({[Measure[Остаток]},Dim.AllMembers) 

но результат не будет включать тюпл ([Measure[Остаток],Dim.CM)

тогда Вы пробуете

Код: plaintext
1.
Filter(CrossJoin({[Measure[Остаток]},Dim.AllMembers),[Measure[Остаток]> 0 )

но это медленно

Так попробуйте компромиссный вариант

Код: plaintext
1.
NECJ({[Measure[Остаток]},Dim.Members) + Filter(CrossJoin({[Measure[Остаток]},{Dim.CM}),[Measure[Остаток]> 0 )

Он ведь явно будет быстрее

Правда я не знаю в каком измерении у Вас СМ, но даже если он у Вас вне кроссджойна - можно таким образом оптимизировать



Владислав Беляев
...
Рейтинг: 0 / 0
27.02.2006, 16:43
    #33568506
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3)
2 Владислав Беляев
что-то у Вас это не в тему...
у нас была попытка посчитать count(necj(Dim1, Measure)) для aggregate по нескольким членам Dim2
а у Вас все в рамках Dim1
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / NonEmptyCrossJoin и Calculated member (MSAS 2000 sp3) / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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