powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / странное поведение NonEmptyCrossJoin... баг или фича?
3 сообщений из 3, страница 1 из 1
странное поведение NonEmptyCrossJoin... баг или фича?
    #32584307
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 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 
([Time].[ 1998 ].children) on columns,

NonEmptyCrossJoin([ProductSet], [MeasureSet], {[Time].[ 1998 ]},  2 ) 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.
14.
15.
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 ([Time].[ 1998 ].children) on columns,

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

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

странным образом возвращает кроме всего прочего даже те продукты, у которых и [Measures].[Sales Count] и [Measures].[Store Sales] пустые.

Такое же странное поведение наблюдается если в первом заросе перенести меры со строк на столбцы.

Код: 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]

Ни в документации, ни в MDX-Solutions Споффорда я не нашел внятного объяснения этому странному поведению.

Привожу Screenschot первого и 3-го запросов.
...
Рейтинг: 0 / 0
странное поведение NonEmptyCrossJoin... баг или фича?
    #32584377
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего фича, NonEmptyCrossjoin расчитывается в контексте оси, до того как расчитывается текущая координата и where clause. В данном примере, он не смотрит на Anacortes, а берет customer.defaultmember. Значение же ячейки высчитывается с учетом where clause, т.е. для Anacortes.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
странное поведение NonEmptyCrossJoin... баг или фича?
    #32584382
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИринаСкорее всего фича, NonEmptyCrossjoin расчитывается в контексте оси, до того как расчитывается текущая координата и where clause. В данном примере, он не смотрит на Anacortes, а берет customer.defaultmember. Значение же ячейки высчитывается с учетом where clause, т.е. для Anacortes.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

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


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