(SQL Server Analysis Services) MDX-запрос, чтобы получить непосредственного родителя?

Желаемый результат

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

Результат куба показывает всех менеджеров конкретного сотрудника, как показано ниже:

Аббас, Санчес, 825
Аббас, Уэлкер, 825
Аббас, Аббас, 825`

Я хочу видеть только непосредственного руководителя конкретного сотрудника, имея в виду это:

Аббас, Уэлкер, 825

Как повторить сценарий:

  1. Использование инструментов данных SQL Server
  2. Создайте многопрофильный проект Data Analysis Services Mining
  3. Источником данных является база данных AdventureWorksDW12, пример базы данных от Microsoft.
  4. Представление источника данных имеет две таблицы: FactResellerSales и DimEmployee
  5. Создать куб. FactResellerSales = меры. DimEmployee = размеры.
  6. Измерение DimEmployee имеет следующие атрибуты: EmployeeKey, LastName, ParentEmployeeKey.

    • АтрибутEmployeeKey изменен, чтобы принять столбец имени: DimEmployee.LastName
    • Атрибут ParentEmployeeKey находится в родительско-дочерних отношениях. Атрибут создал многоуровневую иерархию. СКРИНШОТ 1
  7. Разверните куб и просмотрите. Перетащите следующие атрибуты: LastName, ParentEmployeeKey, Количество заказа. СКРИНШОТ 2

1 ответ

Решение

Может быть, вы могли бы попробовать любой из этих mdx функции:

.Parent... https://msdn.microsoft.com/en-us/library/ms145513.aspx

ancestor... https://msdn.microsoft.com/en-us/library/ms145616.aspx

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

Может работать что-то вроде следующего:

WITH MEMBER Measures.ParentKey AS 
   [Dim Employee].[Parent Employee Key].CurrentMember.Parent.member_caption
SELECT 
  {[Measures].ParentKey } ON 0,
  [Dim Employee].[Parent Employee Key].[(All)].members ON 1
FROM [YourCube]
Другие вопросы по тегам