Поделиться через


Дополнительный урок. Неоднородные иерархии

Применимо к: SQL Server 2017 и более поздних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

В этом дополнительном занятии вы устраните распространенную проблему, которая возникает при сведении иерархий, содержащих пустые значения (члены) на различных уровнях. Например, организация, где прямыми подчиненными высокопоставленного руководителя являются как руководители подразделений, так и не руководящие работники. Или географические иерархии, состоящие из комбинации страна+регион+город, где некоторые города не относятся к конкретному штату или конкретной провинции, например Вашингтон, округ Колумбия, или Ватикан. Когда иерархия содержит пустые члены, она часто опускается на другие — или неоднородные — уровни.

Снимок экрана: иерархия сотрудников, содержащая пустое значение.

Табличные модели на уровне совместимости 1400 имеют дополнительное свойство Скрыть члены для иерархий. Значение По умолчанию предполагает отсутствие пустых членов на всех уровнях. Значение Скрыть пустые члены исключает пустые члены из иерархии при добавлении в сводную таблицу или отчет.

Предполагаемое время выполнения этого занятия: 20 минут

Предварительные требования

Эта дополнительная статья урока является частью руководства по табличному моделированию. Прежде чем выполнять задачи из этого дополнительного занятия, следует завершить все предыдущие занятия или располагать готовым учебным проектом модели интернет-продаж Adventure Works.

Если вы создали проект AW Internet Sales во время прохождения этого учебника, то ваша модель еще не содержит неоднородные иерархии или данные. Для выполнения этого дополнительного занятия нужно сначала создать проблему, добавив несколько дополнительных таблиц, создать связи, вычисляемые столбцы, меры и новую иерархию "Organization". Эта часть займет около 15 минут. Затем вам потребуется решить проблему за несколько минут.

Добавление таблиц и объектов

Порядок добавления таблиц в модель

  1. В Обозреватель табличной модели разверните узел Источники данных, а затем щелкните правой кнопкой мыши подключение >Импорт новых таблиц.

  2. В навигаторе выберите DimEmployee и FactResellerSales, а затем нажмите кнопку ОК.

  3. В редакторе запросов щелкните элемент Импорт.

  4. Создайте следующие связи:

    Таблица 1 Столбец Направление фильтра Таблица 2 Столбец Активен
    FactResellerSales OrderDateKey Default DimDate Дата Да
    FactResellerSales DueDate Default DimDate Дата Нет
    FactResellerSales ShipDateKey Default DimDate Дата Нет
    FactResellerSales ProductKey Default DimProduct ProductKey Да
    FactResellerSales EmployeeKey В обе таблицы DimEmployee EmployeeKey Да
  5. В таблице DimEmployee создайте следующие вычисляемые столбцы:

    Путь

    =PATH([EmployeeKey],[ParentEmployeeKey])
    

    FullName

    =[FirstName] & " " & [MiddleName] & " " & [LastName]
    

    Уровень 1

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],1,1)) 
    

    Уровень 2

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],2,1)) 
    

    Level3

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],3,1)) 
    

    Уровень 4

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],4,1)) 
    

    Level5

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],5,1)) 
    
  6. В таблице DimEmployee создайте иерархию с именем Organization. Добавьте следующие столбцы в указанном порядке: Level1, Level2, Level3, Level4, Level5.

  7. В таблице FactResellerSales создайте следующую меру:

    ResellerTotalSales:=SUM([SalesAmount])
    
  8. Используйте функцию Анализ в Excel, чтобы открыть Excel и автоматически создать сводную таблицу.

  9. В поле Поля сводной таблицы добавьте иерархию Organization из таблицы DimEmployee в раздел Строки, а меру ResellerTotalSales из таблицы FactResellerSalesв Значение.

    Снимок экрана: электронная таблица с диалоговым окном

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

Исправление неоднородной иерархии с помощью установки свойства "Скрыть члены"

  1. В обозревателе табличных моделей разверните пункт Таблицы>DimEmployee>Иерархии>Organization.

  2. В разделе Свойства>Скрыть элементы выберите Скрыть пустые элементы.

    Снимок экрана: окно свойств со стрелкой, указывающей на параметр Скрыть пустые элементы.

  3. Вернитесь в Excel и обновите сводную таблицу.

    Снимок экрана: иерархия сотрудников без пустых элементов.

    Теперь все выглядит гораздо лучше!

См. также:

Урок 9. Создание иерархий
Дополнительный урок. Динамическая безопасность
Дополнительное занятие. Подробные строки