Сверка измерений в SSAS

#sql-server #ssas

#sql-сервер #ssas

Вопрос:

У нас есть OLAP-куб, который содержит финансовую информацию о наших офисах. В базовых таблицах мы рассчитываем этапы жизненного цикла офисов, используя средний недельный доход каждого офиса. Фазы жизненного цикла рассчитываются на уровне даты окончания недели. Например: изображение

Вот многомерное выражение, которое генерирует приведенный выше пример:

 SELECT NON EMPTY { [Measures].[Current Period Revenue] } ON COLUMNS,
 NON EMPTY { ([04 - Office - Financial].[Office Name and Number].[Office Name and Number].ALLMEMBERS * [01 - Journal Date].[Quarter].[Quarter].ALLMEMBERS * [01 - Journal Date].[Week Ending Date].[Week Ending Date].ALLMEMBERS * [04 - Office Lifecycle].[Office Life Cycle Phase].[Office Life Cycle Phase].ALLMEMBERS ) } 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( { [01 - Journal Date].[Year].amp;[2020] } ) 
ON COLUMNS FROM ( SELECT ( { [04 - Office - Financial].[Office Name and Number].amp;[Office A] } ) 
ON COLUMNS FROM [GL Cube])) 
WHERE ( [01 - Journal Date].[Year].amp;[2020] ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
  

В кубе office и жизненный цикл office — это два разных измерения. В приведенном выше примере Office A проходит две разные фазы до Qtr 2 2020: фаза 1 и фаза 2. Дата окончания последней недели Qtr 2020 показывает фазу 2 для этого офиса.
Когда мы извлекаем дату окончания недели из сводной таблицы, куб снова показывает фазу 1 и фазу 2 для Qtr 2 2020:

изображение

Многомерные выражения:

 SELECT NON EMPTY { [Measures].[Current Period Revenue] } ON COLUMNS,
 NON EMPTY { ([04 - Office - Financial].[Office Name and Number].[Office Name and Number].ALLMEMBERS * [01 - Journal Date].[Quarter].[Quarter].ALLMEMBERS * [04 - Office Lifecycle].[Office Life Cycle Phase].[Office Life Cycle Phase].ALLMEMBERS ) } 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( { [01 - Journal Date].[Year].amp;[2020] } ) 
ON COLUMNS FROM ( SELECT ( { [04 - Office - Financial].[Office Name and Number].amp;[Office A] } ) 
ON COLUMNS FROM [GL Cube])) 
WHERE ( [01 - Journal Date].[Year].amp;[2020] ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
  

Есть ли способ настроить куб таким образом, чтобы он отражал только фазу жизненного цикла office последней недели квартала? В этом случае сводная таблица будет выглядеть следующим образом:
изображение

Есть ли способ добиться такого динамического поведения измерений в кубе?

Комментарии:

1. Можете ли вы предоставить общий доступ к запросу DAX или MDX, который вы используете для генерации этой матрицы?

2. привет @vvvv4d Я добавил многомерные запросы к вопросу, спасибо!