Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 SSAS 2012. MDX-запрос. Модификация набора(SET)  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 782
Hello world!
Есть куб в котором хранится информация по приходам/ уходам сотрудников на работу.
Нужно для каждого сотрудника посчитать, сколько раз он уходил в промежутке времени с 15:56 до 17:33
[Measures].[AVG Exit Time] - [Время ухода (ср.)] в формате часы : минуты
[Measures].[AVG Exit Time Test] - [Measures].[AVG Exit Time] без форматирования
MEMBER [Дней отработано] - в контексте дня возвращает 1
У меня получилось для комбинаций (сотрудник, день) оставить только те, которые нужны. Код ниже
WITH SET [ANALITICA] AS  
		FILTER
			(
			([Person].[Person].[Person],[Date].[Calendar].[Month Year].&[201802].children),
			[AVG Exit Time] < 0.731921296297514 and [AVG Exit Time] > 0.663472222222481
			)
	 MEMBER [Дней отработано] AS
		NONEMPTY(EXISTING([Date].[Calendar].[Date]), [AVG Exit Time]).COUNT
SELECT	{[Measures].[AVG Exit Time], [Measures].[AVG Exit Time Test], [Дней отработано]} ON 0,
		[ANALITICA] ON 1
FROM	[Worktime]
А дальше нужно подняться на уровень месяца и воспользовавшись MEMBER-ом [Дней отработано] получить желаемый результат.

Подскажите возможно ли это сделать?
19 мар 18, 18:40    [21269351]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2012. MDX-запрос. Модификация набора(SET)  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 782
Для сотрудника с [Person].[Person].&[76] этот запрос возвращает такой набор:
Время ухода (ср.) AVG Exit Time Test Дней отработано
Баева Наталия Викторовна 01.02.2018 Чт 16:58 0.707592592589208 1
Баева Наталия Викторовна 02.02.2018 Пт 17:03 0.710960648146283 1
Баева Наталия Викторовна 05.02.2018 Пн 17:02 0.710150462960883 1
Баева Наталия Викторовна 06.02.2018 Вт 17:08 0.713969907410501 1
Баева Наталия Викторовна 07.02.2018 Ср 17:15 0.719189814815763 1
Баева Наталия Викторовна 08.02.2018 Чт 16:57 0.706562500003201 1
Баева Наталия Викторовна 12.02.2018 Пн 17:01 0.709108796298096 1
Баева Наталия Викторовна 13.02.2018 Вт 17:01 0.709664351852553 1
Баева Наталия Викторовна 14.02.2018 Ср 17:04 0.711689814816054 1
Баева Наталия Викторовна 19.02.2018 Пн 17:02 0.71004629629897 1
Баева Наталия Викторовна 20.02.2018 Вт 17:04 0.711643518516212 1
Баева Наталия Викторовна 21.02.2018 Ср 16:59 0.707928240743058 1
Баева Наталия Викторовна 22.02.2018 Чт 17:00 0.708854166667152 1
Баева Наталия Викторовна 27.02.2018 Вт 17:01 0.709293981482915 1


Как в наборе [ANALITICA] оставить только сотрудника? чтобы получить такой результат?
Дней отработано
Баева Наталия Викторовна 14
7 июн 18, 10:35    [21474952]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2012. MDX-запрос. Модификация набора(SET)  [new]
bideveloper
Member

Откуда:
Сообщений: 333
WITH  MEMBER [Дней отработано] AS
		SUM([Date].[Calendar].[Month Year].&[201802].children, IIF([AVG Exit Time] < 0.731921296297514 and [AVG Exit Time] > 0.663472222222481, 1, NULL))
SELECT	 [Дней отработано] ON 0,
		[Person].[Person].[Person] ON 1
FROM	[Worktime]
7 июн 18, 11:34    [21475220]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2012. MDX-запрос. Модификация набора(SET)  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 782
bideveloper,
Спасибо, сработало!
7 июн 18, 15:07    [21476309]     Ответить | Цитировать Сообщить модератору
 Re: SSAS 2012. MDX-запрос. Модификация набора(SET)  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 782
еще добавил проверку на "пусто"
WITH  MEMBER [Дней отработано] AS
		SUM([Date].[Calendar].[Month Year].&[201802].children, IIF([AVG Exit Time] < 0.731921296297514 and [AVG Exit Time] > 0.663472222222481, 1, NULL))
SELECT	[Дней отработано] ON 0,
		nonempty ([Person].[Person].[Person], [Дней отработано]) ON 1
FROM	[Worktime]
7 июн 18, 15:08    [21476318]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить