MDX NonEmptyCrossJoin не возвращает ожидаемых результатов - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь использовать NonEmptyCrossJoin в сочетании с Extract для возврата только релевантных элементов данного измерения.Однако NonEmptyCrossJoin не возвращает непустые кортежи.

Следующий запрос возвращает данные для показанных EOC и индекса 2.

SELECT 
{ [Measures].[MTD BCWP] } ON 0,
{ CROSSJOIN([EOC].[EOC].[EOC], { [INDEX].[INDEX ID].&[2] } ) } ON 1
FROM Metrics
        |   | MTD BCWP
        | 2 | (null)
G       | 2 | 939482.280
L       | 2 | 7508780.49
M       | 2 | 650
O       | 2 | 151652.62
Unknown | 2 | (null)

Тот же запрос с использованием NonEmptyCrossJoin возвращает пустой набор.

SELECT 
{ [Measures].[MTD BCWP] } ON 0,
{ NONEMPTYCROSSJOIN([EOC].[EOC].[EOC], { [INDEX].[INDEX ID].&[2] } ) } ON 1
FROM Metrics

Полный запрос, в котором он используется, гораздо сложнее, но эти примеры показывают суть проблемы.Я считаю, что проблема связана с конфигурацией измерения или группы измерений, но не знаю, что искать.

Измерение EOC содержит только член EOC.
Измерение Index содержит Id индекса (PK) идругие атрибуты.
Группа показателей включает в себя элементы Index Id и EOC, связанные с их соответствующими измерениями, а также другие значения.

Благодарим Вас за потраченное время.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы должны поместить свое перекрестное соединение в непустое () и указать соответствующее значение для непустого значения.Следующий пример поможет

select 
{
[Measures].[Internet Sales Amount]
}
on columns,
{
crossjoin([Product].[Subcategory].[Subcategory],{[Geography].[Country].&[United States]})
}
on rows 
from 
[Adventure Works]

// это приведет к

![enter image description here

Теперь мы изменим наш запрос

select 
{
[Measures].[Internet Sales Amount]
}
on columns,
{
nonempty(
crossjoin([Product].[Subcategory].[Subcategory],{[Geography].[Country].&[United States]})
,
[Measures].[Internet Sales Amount])
}
on rows 
from 
[Adventure Works]

// Это приводит к

enter image description here

...