Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите с MDX / 7 сообщений из 7, страница 1 из 1
27.02.2006, 15:31
    #33568244
EugenT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с MDX
Доброго времени суток!

Помогите с MDX запросом, что-то не соображу, как получить вычисление показателя "Кол-воТТ" (Кол-во уникальных Торговых Точек) по выбранным маршрутам!
Нужно получить отчет показанный на рисунке, т.е. вычислить "Кол-во ТТ" по Маршруту1 и Маршруту2 и "Кол-во ТТ" по ним обоим! (Это не сумма, т.к. есть ТТ, которые входили в Маршрут1 и в Маршрут2 за указанный период времени)

Запрос такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH SET myTime as '[Время].[Все Время].[2006].[Квартал 1].[Январь].[Неделя 3].[9 - Понедельник]:[Время].[Все Время].[2006].[Квартал 1].[Февраль].[Неделя 6].[5 - Воскресенье]'
 SET myRoute as '{[Маршрут].[Все Маршруты].[Маршрут1], [Маршрут].[Все Маршруты].[Маршрут2]}'
 Member [Measures].[CM] as 'Count(NonEmptyCrossjoin(Descendants([Торговые Точки].CurrentMember,,LEAVES),myTime, NOT IsEmpty([Measures].[Количество])))'
 Member [Measures].[Кол-во ТТ] as 'Iif([Measures].[CM] =0,NULL,[Measures].[CM])' 
SELECT 
NON EMPTY {[Номенклатура].[Товар1]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS,
NON EMPTY CROSSJOIN({[Офисы].[Все Офисы].[Офис1]},myRoute) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON ROWS  
FROM [Sales] 
WHERE ([Measures].[Кол-воТТ])
...
Рейтинг: 0 / 0
27.02.2006, 16:26
    #33568434
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с MDX
:)) что-то у нас DistinctCount популярностью пользуется
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
WITH  SET myRoute as '{[Маршрут].[Все Маршруты].[Маршрут1], [Маршрут].[Все Маршруты].[Маршрут2]}'
 Member [Время].[Все Время].[AGGmyTime] as 'AGGREGATE({[Время].[Все Время].[2006].[Квартал 1].[Январь].[Неделя 3].[9 - Понедельник]:[Время].[Все Время].[2006].[Квартал 1].[Февраль].[Неделя 6].[5 - Воскресенье]})'
 Member [Measures].[Кол-во ТТ] as 'IIF(IsEmpty([Measures].[Количество]), null, Count(CrossJoin(Descendants([Торговые Точки].CurrentMember,,LEAVES), [Measures].[Количество]), excludeempty))'
SELECT 
NON EMPTY {[Номенклатура].[Товар1]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS,
NON EMPTY CROSSJOIN({[Офисы].[Все Офисы].[Офис1]},myRoute) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON ROWS  
FROM [Sales] 
WHERE ([Время].[Все Время].[AGGmyTime], [Measures].[Кол-во ТТ])
...
Рейтинг: 0 / 0
27.02.2006, 16:42
    #33568498
EugenT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с MDX
ShIgor:)) что-то у нас DistinctCount популярностью пользуется
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
WITH  SET myRoute as '{[Маршрут].[Все Маршруты].[Маршрут1], [Маршрут].[Все Маршруты].[Маршрут2]}'
 Member [Время].[Все Время].[AGGmyTime] as 'AGGREGATE({[Время].[Все Время].[2006].[Квартал 1].[Январь].[Неделя 3].[9 - Понедельник]:[Время].[Все Время].[2006].[Квартал 1].[Февраль].[Неделя 6].[5 - Воскресенье]})'
 Member [Measures].[Кол-во ТТ] as 'IIF(IsEmpty([Measures].[Количество]), null, Count(CrossJoin(Descendants([Торговые Точки].CurrentMember,,LEAVES), [Measures].[Количество]), excludeempty))'
SELECT 
NON EMPTY {[Номенклатура].[Товар1]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS,
NON EMPTY CROSSJOIN({[Офисы].[Все Офисы].[Офис1]},myRoute) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON ROWS  
FROM [Sales] 
WHERE ([Время].[Все Время].[AGGmyTime], [Measures].[Кол-во ТТ])


Спасибо, но главная задача не решена! ;-(
Помимо "Кол-во ТТ" для каждого из Маршрутов, еще нужно получить "Кол-во ТТ" для них обоих (на рисунке "Итого по выбранным маршрутам")!

Есть решение использовать дополнительный CM, но это неправильно.
...
Рейтинг: 0 / 0
27.02.2006, 16:46
    #33568521
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с MDX
EugenTЕсть решение использовать дополнительный CM, но это неправильно.
почему?
...
Рейтинг: 0 / 0
27.02.2006, 17:00
    #33568571
EugenT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с MDX
ShIgor EugenTЕсть решение использовать дополнительный CM, но это неправильно.
почему?

Дополнительный CM (для получения "итога по выбранным маршрутам") будет следующего вида:
Код: plaintext
 Member [Measures].[CM_new] as 'Count(NonEmptyCrossjoin(Descendants([Торговые Точки].CurrentMember,,LEAVES),myTime,myRoute, NOT IsEmpty([Measures].[Количество])))'

Но если я правильно понимаю механизм вычисления CM, то данный CM (CM_new) будет вычисляться столько раз сколько будет маршрутов или я ошибаюсь?
Результат будет такой:
...
Рейтинг: 0 / 0
27.02.2006, 17:14
    #33568618
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с MDX
ну зачем же так-то?
добавьте после myRoute
Код: plaintext
MEMBER [Маршрут].[Все Маршруты].AGGmyRoute as 'AGGREGATE(myRoute)'
и затем в
Код: plaintext
CROSSJOIN({[Офисы].[Все Офисы].[Офис1]}, {myRoute, AGGmyRoute})
...
Рейтинг: 0 / 0
27.02.2006, 17:29
    #33568687
EugenT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с MDX
ShIgorну зачем же так-то?
добавьте после myRoute
Код: plaintext
MEMBER [Маршрут].[Все Маршруты].AGGmyRoute as 'AGGREGATE(myRoute)'
и затем в
Код: plaintext
CROSSJOIN({[Офисы].[Все Офисы].[Офис1]}, {myRoute, AGGmyRoute})

Спасибо, получилось именно то, чо надо!
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите с MDX / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]