Как я могу определить, связаны ли размеры?

StackOverflow https://stackoverflow.com/questions/6345178

  •  27-10-2019
  •  | 
  •  

Вопрос

Я разрабатываю приложение «Строитель запросов», которое генерирует MDX и пытаюсь получить количество клиентов из куба, используя следующее, что работает просто хорошо:

WITH MEMBER MEASURES.X AS (
    { [Customer].[Gender].[Female]}, 
    [Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]

Однако, если пользователь перетаскивает измерение, которое не связано с клиентом, как:

WITH MEMBER MEASURES.X AS (
    { [Customer].[Gender].[Female]}, 
    { [Employee].[Status].[Active], [Employee].[Status].[Inactive]},  
    [Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]

Результат подсчета, очевидно, становится неверным.

Есть ли способ определить, связано ли измерение с клиентом, чтобы я мог исключить его из сгенерированного запроса MDX?

Это было полезно?

Решение 2

Решил проблему, используя Существует (set_expression1, set_expression2 [, seamgroupName]) функция Нет необходимости вручную определять, какие измерения связаны. А Существуют функционировать отфильтровывает не связанные кортежи, оставляя только{ [Customer].[Customer].Children, [Customer].[Gender].[Female]} установить, чтобы сделать счет.

Вот MDX:

WITH MEMBER MEASURES.X AS Exists(
    [Customer].[Customer].Children,
    {[Customer].[Gender].[Female]}
    *
    {[Employee].[Status].[Active], [Employee].[Status].[Inactive]}
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]

Другие советы

Эта информация может быть извлечена из куба через Амо. Анкет А Cube Класс содержит все метаданные куба, которые вам понадобятся.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top