Определение связей атрибутов и порядка сортировки в измерении Date
Откройте измерение «Date» в конструкторе измерений и в окне свойств просмотрите свойство «OrderBy» для атрибута «Month Name» (Рисунок 283).
Рисунок 299. Свойство «OrderBy» для атрибута «Month Name»
Обратите внимание, что элементы атрибута «Month Name» отсортированы по ключевым значениям.
Перейдите на вкладку «Обозреватель», убедитесь, что в списке «Иерархии» выбрано значение «Calendar Date», после чего раскройте уровни пользовательской иерархии и просмотрите порядок сортировки календарных месяцев (Рисунок 284).
Рисунок 300. Уровни иерархии Calendar Date
Обратите внимание, что элементы иерархии атрибута отсортированы по ASCII-значениям ключей их элементов, то есть месяца и года. В этом случае сортировка по имени атрибута или ключу не сортирует календарные месяцы хронологически. Для решения этой проблемы элементы иерархии атрибута будут отсортированы на основе нового атрибута «MonthNumberOfYear». Этот атрибут будет создан на основе столбца, который содержится в таблице измерения «Date».
Перейдите на вкладку «Структура измерения» для измерения даты, щелкните правой кнопкой мыши пункт «MonthNumberOfYear» в области «Представление источника данных» и в контекстном меню выберите команду «Создать атрибут из столбца» (Рисунок 285).
Рисунок 301. Контекстное меню столбца "MonthNumberOfYear"
В области «Атрибуты» выберите атрибут «MonthNumberOfYear» и в окне «Свойства» установите для свойства AttributeHierarchyEnabled значение False. Укажите для свойства AttributeHierarchyOptimizedState значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False (Рисунок 286).
Рисунок 302. Свойства атрибута «MonthNumberOfYear»
Установка этих значений скроет атрибут от пользователей и сократит время обработки. Этот атрибут не будет использоваться для просмотра. Он будет использован только для упорядочивания элементов другого атрибута.
Перейдите на вкладку «Связи атрибутов» (Рисунок 287).
Рисунок 303. Вкладка "Связи атрибутов" конструктора измерения "Date"
Обратите внимание, что все атрибуты в измерении «Date» связаны непосредственно с атрибутом «Date», который является ключевым элементом, связывающим элементы измерения с фактами в связанных группах мер. Между атрибутами «Month Name» и «Month Number of Year» связи не определены.
На схеме щелкните правой кнопкой мыши атрибут «Month Name» и в контекстном меню выберите команду «Создать связь атрибутов» (Рисунок 288).
Рисунок 304. Контекстное меню атрибута «Month Name»
В диалоговом окне «Создать связь атрибутов» поле «Исходный атрибут» имеет значение «Month Name». Задайте в поле «Связанный атрибут» значение «Month Number of Year» (Рисунок 289).
Рисунок 305. Диалоговое окно «Создать связь атрибутов»
В списке «Тип связи» выберите тип связи «Жесткая». Связи между элементами атрибута «Month Name» и «Month Number of Year» не будут меняться со временем. В результате службы SSAS не удалят статистические выражения для этой связи во время добавочной обработки. Если происходит изменение, возникнет ошибка изменений во время добавочной обработки, и нужно будет выполнить полную обработку измерения. Нажмите кнопку ОК.
Теперь можно приступить к выбору порядка сортировки элементов атрибута «Month Name».
Перейдите на вкладку «Структура измерения». Выберите атрибут «Month Name» в области «Атрибуты», после чего измените значение свойства «OrderBy» в окне свойств на «AttributeKey», а свойства «OrderByAttribute» — на «Month Number of Year» (Рисунок 290).
Рисунок 306. Свойства атрибута «Month Name»
Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку «Обозреватель» измерения «Date», нажмите кнопку «Повторное соединение» и просмотрите пользовательские иерархии «Calendar Date» (Рисунок 291) и «Fiscal Date» (Рисунок 292), чтобы убедиться, что месяцы отсортированы в хронологическом порядке.
Рисунок 307. Элементы иерархии «Calendar Date»
Рисунок 308. Элементы иерархии Fiscal Date