Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / странное поведение NonEmptyCrossJoin... баг или фича? II / 11 сообщений из 11, страница 1 из 1
01.07.2004, 01:41
    #32584387
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
Из описания MDX следует (будь я трижды не прав), что

NonEmtpyCrossJoin(
{Dim1.Member1:Dim1.MemberN},
{Dim2.Member1:Dim2.MemberM},
{Dim2.Member1:Dim2.MemberK}, 1)

эквивалентно

Extract(
NonEmtpyCrossJoin(
{Dim1.Member1:Dim1.MemberN},
{Dim2.Member1:Dim2.MemberM},
{Dim2.Member1:Dim2.MemberK})
Dim1)

только второй вариант требует больше ресурсов.
но как показывает практика это не так.

В качестве подтверждения два MDX запроса к FoodMart 2000, которые возвращают разный результат.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with 

set [ProductSet] as ' {[Product].[All Products].[Food].[Baking Goods], 
descendants([Product].[All Products].[Food].[Baking Goods], 
                  [Product].[Product Name])}'
set [MeasureSet] as '{[Measures].[Sales Count], [Measures].[Store Sales]}'

select 
crossjoin([Time].[ 1998 ].children, [MeasureSet]) on columns,

NonEmptyCrossJoin([ProductSet], [MeasureSet], {[Time].[ 1998 ]},  1 ) on rows

from [Warehouse and Sales]
where [Customers].[All Customers].[USA].[WA].[Anacortes]

и

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with 

set [ProductSet] as ' {[Product].[All Products].[Food].[Baking Goods], 
descendants([Product].[All Products].[Food].[Baking Goods], 
                  [Product].[Product Name])}'
set [MeasureSet] as '{[Measures].[Sales Count], [Measures].[Store Sales]}'

select 
crossjoin([Time].[ 1998 ].children, [MeasureSet]) on columns,

extract(NonEmptyCrossJoin([ProductSet], [MeasureSet], {[Time].[ 1998 ]}), [Product]) on rows

from [Warehouse and Sales]
where [Customers].[All Customers].[USA].[WA].[Anacortes]
...
Рейтинг: 0 / 0
01.07.2004, 01:49
    #32584389
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
Опечатка

{Dim1.Member1:Dim1.MemberN},
{Dim2.Member1:Dim2.MemberM},
{Dim2.Member1:Dim2.MemberK}

следует читать как

{Dim1.Member1:Dim1.MemberN},
{Dim2.Member1:Dim2.MemberM},
{Dim3.Member1:Dim3.MemberK}
...
Рейтинг: 0 / 0
01.07.2004, 02:08
    #32584392
странное поведение NonEmptyCrossJoin... баг или фича? II
Я думаю не стоит расстраиваться, ещё 5к вёдер и наступит полное счастье в виде Юкона ;o).. А там как утверждают наши дорогие разработчики мы будем лишены подобного вылавливания. Будут новые красивые, вкусные фиче-баги.
грядёт...ГРЯДЁТ...
...
Рейтинг: 0 / 0
01.07.2004, 08:07
    #32584464
Ирина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
Похоже что Вы правы, действительно есть некоторое несоответсвие и зависимость результатов от последнего параметра, если куб виртуальный. К сожалению, я пока не могу сказать будут ли изменения в SP4, если такое поведение сильно ломает Ваше приложение, то лучше всего обратиться в PSS.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
01.07.2004, 20:49
    #32586146
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
Спасибо, что вы признали что это все таки не фича, а баг, по крайней мере нежелательная фича.

К сожалению, я пока не могу сказать будут ли изменения в SP4, если такое поведение сильно ломает Ваше приложение, то лучше всего обратиться в PSS.

можно ли обращаться напрямую в Редмонд или только через регионалов из Microsoft Deutschland GmbH? Там же не с кем общаться по серъезным вопросам. Говорю вам это из личного опыта.
...
Рейтинг: 0 / 0
01.07.2004, 23:25
    #32586210
Вжик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
Я вот тоже на днях с NonEmptyCrossJoin экспериментировал. И тоже имеются странности. Причем эти странности всплывают в вирутальном кубе: произведение сета потомков номенклатры на меру продажи.выручка не дает тот же самый сет при запросе в физическом кубе продажи, где из мер только выручка и ей аналогичные. Из чего я сделал вывод, что рассматриваемая таблица фактов в вируальном кубе для этой функции - составная. Ну и прочие мутки... Так что до конца мне логика этой функции не понятна. Хотя, как пишут в БОЛ, она работает быстрее чем Filter и интерес к ее применению составляет получение продававшейся номенклатуры за период (произведение на меру продажи.количество) и последующее манипулирование этим сетом. При количестве номенклатуры порядка 105000 она заметно ускоряет работу, получая продаваемые сеты размером до 5000 элементов, но как сказано выше, в виртуальном кубе в этот сет лезут и не продаваемые элементы. Так что вопрос...
...
Рейтинг: 0 / 0
02.07.2004, 00:20
    #32586224
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
в виртуальном кубе в этот сет лезут и не продаваемые элементы. Так что вопрос...

MDX приведи, помогу.
...
Рейтинг: 0 / 0
02.07.2004, 12:06
    #32586839
Вжик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SELECT

{
[Measures].[Продажи Выручка] 
}

ON COLUMNS , 

{
NonEmptyCrossJoin(DESCENDANTS([Номенклатура].&[    2K],, LEAVES), {[Measures].[Продажи Выручка]},  1 )
}

ON ROWS

FROM [Вся деятельность]

WHERE 
(
[Дата].[Год].&[ 2004 ].&[ 22004 ].&[ 042004 ], 
[Центры УТ].[Центры УТ].&[     QЦ] 
)

вот такой вот код выводит в том числе строки, не содержащие данные о выручке в виртуальном кубе. Всего строк 900. Если вместо Центра УТ (магазина) в фильтре поставить магазин, где продаж вообще нет и быть не может (склад), то список будет сосотять из 400 позиций с пустой выручкой. Из чего я сделал вывод что при произведении на меру используется весь список мер из порезаной таблицы фактов текущего куба, в виртуальном - она составная. Т.е. 400 строк - это те позиции, поставки которых на склад производились, этот список и распологается по строкам. Выручка же пустая. Вот такое вот горе.
...
Рейтинг: 0 / 0
02.07.2004, 15:51
    #32587471
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
Bместо

NonEmptyCrossJoin(DESCENDANTS([Номенклатура].&[ 2K],, LEAVES), {[Measures].[Продажи Выручка]}, 1)


пользуй

Extract(NonEmptyCrossJoin(DESCENDANTS([Номенклатура].&[ 2K],, LEAVES), {[Measures].[Продажи Выручка]}), [Номенклатура])
...
Рейтинг: 0 / 0
02.07.2004, 16:39
    #32587617
Вжик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
И точно работает, спасибо. Где про такое пишут?
...
Рейтинг: 0 / 0
02.07.2004, 18:33
    #32587819
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
странное поведение NonEmptyCrossJoin... баг или фича? II
ВжикИ точно работает, спасибо. Где про такое пишут?

И опыт - сын ошибок трудных....

Ни где не пишут - сами трахаемся и описываем.

NonEmptyCrossJoin strange behaviour... Bug or Feature?
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / странное поведение NonEmptyCrossJoin... баг или фича? II / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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