Дополнительный урок. Неоднородные иерархии
Применимо к: SQL Server 2017 и более поздних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium
В этом дополнительном занятии вы устраните распространенную проблему, которая возникает при сведении иерархий, содержащих пустые значения (члены) на различных уровнях. Например, организация, где прямыми подчиненными высокопоставленного руководителя являются как руководители подразделений, так и не руководящие работники. Или географические иерархии, состоящие из комбинации страна+регион+город, где некоторые города не относятся к конкретному штату или конкретной провинции, например Вашингтон, округ Колумбия, или Ватикан. Когда иерархия содержит пустые члены, она часто опускается на другие — или неоднородные — уровни.
Табличные модели на уровне совместимости 1400 имеют дополнительное свойство Скрыть члены для иерархий. Значение По умолчанию предполагает отсутствие пустых членов на всех уровнях. Значение Скрыть пустые члены исключает пустые члены из иерархии при добавлении в сводную таблицу или отчет.
Предполагаемое время выполнения этого занятия: 20 минут
Предварительные требования
Эта дополнительная статья урока является частью руководства по табличному моделированию. Прежде чем выполнять задачи из этого дополнительного занятия, следует завершить все предыдущие занятия или располагать готовым учебным проектом модели интернет-продаж Adventure Works.
Если вы создали проект AW Internet Sales во время прохождения этого учебника, то ваша модель еще не содержит неоднородные иерархии или данные. Для выполнения этого дополнительного занятия нужно сначала создать проблему, добавив несколько дополнительных таблиц, создать связи, вычисляемые столбцы, меры и новую иерархию "Organization". Эта часть займет около 15 минут. Затем вам потребуется решить проблему за несколько минут.
Добавление таблиц и объектов
Порядок добавления таблиц в модель
В Обозреватель табличной модели разверните узел Источники данных, а затем щелкните правой кнопкой мыши подключение >Импорт новых таблиц.
В навигаторе выберите DimEmployee и FactResellerSales, а затем нажмите кнопку ОК.
В редакторе запросов щелкните элемент Импорт.
Создайте следующие связи:
Таблица 1 Столбец Направление фильтра Таблица 2 Столбец Активен FactResellerSales OrderDateKey Default DimDate Дата Да FactResellerSales DueDate Default DimDate Дата Нет FactResellerSales ShipDateKey Default DimDate Дата Нет FactResellerSales ProductKey Default DimProduct ProductKey Да FactResellerSales EmployeeKey В обе таблицы DimEmployee EmployeeKey Да В таблице 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))
В таблице DimEmployee создайте иерархию с именем Organization. Добавьте следующие столбцы в указанном порядке: Level1, Level2, Level3, Level4, Level5.
В таблице FactResellerSales создайте следующую меру:
ResellerTotalSales:=SUM([SalesAmount])
Используйте функцию Анализ в Excel, чтобы открыть Excel и автоматически создать сводную таблицу.
В поле Поля сводной таблицы добавьте иерархию Organization из таблицы DimEmployee в раздел Строки, а меру ResellerTotalSales из таблицы FactResellerSales — в Значение.
Как можно видеть в сводной таблице, иерархия отображает неоднородные строки. Имеется множество строк с пустыми членами.
Исправление неоднородной иерархии с помощью установки свойства "Скрыть члены"
В обозревателе табличных моделей разверните пункт Таблицы>DimEmployee>Иерархии>Organization.
В разделе Свойства>Скрыть элементы выберите Скрыть пустые элементы.
Вернитесь в Excel и обновите сводную таблицу.
Теперь все выглядит гораздо лучше!
См. также:
Урок 9. Создание иерархий
Дополнительный урок. Динамическая безопасность
Дополнительное занятие. Подробные строки