Подтвердить что ты не робот

Вопросы, связанные с MDX Member CrossJoin

У меня есть запрос MDX со следующим вычисляемым членом:

with member [Measures].[BBOX] as
Count(
    Filter(
        CrossJoin([Dim Response].[Response ID].Children, [Dim Question].[Question Text].Children),
        [Measures].[Question Bottom Box] > 0
    )
)

Идея состоит в том, что я хочу подсчет комбинаций из двух членов измерения. (Простите меня, если мой словарь MDX немного не работает). Он также основан на некоторых критериях.

Остальная часть запроса выглядит так:

select 
{({[Measures].[TBOX], [Measures].[BBOX]}, 
[Dim Product].[Category Name].&[Office])} on columns,
{[Dim Question].[Question Text].Members} on rows 
from H1_FY10_Revised
where ({[Dim Question].[Category Name].&[Partner]}, 
{[Dim Subsidiary].[Subsidiary Alias Name].&[Germany]})

Мой вопрос: выполняет ли перерезка данных, которые встречаются в основном запросе (предложение where), вычисленному члену? Существует ли какое-либо неявное соединение между данными, которые возвращаются из вычисленного элемента и осями в основном запросе?

Или другой способ его фразы: выполняется ли перекрестное объединение в вычисляемом элементе в контексте основного запроса?

4b9b3361

Ответ 1

Оценка CrossJoin не зависит от контекста, но функция Filter делает.

Рассчитанные члены вычисляются в контексте запроса bu, вычисленный член может иметь постоянное значение, потому что:

  • [Dim Response]. [Response ID].Дети эквивалентно [Dim Response]. [ID ответа]. DefaultMember.Дети (см. MSDN).
  • [Dim Question]. [Текст вопроса]. Дети эквивалентны [Dim Question]. [Текст вопроса]. DefaultMember.Children

Таким образом, результат CrossJoin не зависит от slicer. Только значение [Measures].[Question Bottom Box] будет зависеть от slicer.