powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX как правильно...
9 сообщений из 9, страница 1 из 1
MDX как правильно...
    #33006740
SSPEED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как правильно написать формулу в CM (SQL 2000 AS).
Есть таблица фактов:
Дата| Регион| Клиент| Кол-во| План
1 | 1 | 1 | 50 | 6000 |
1 | 1 | 2 |400| 6000 |
1 | 1 | 3 |500| 6000 |
1 | 2 | 4 |100| 2000 |

План выставляется на каждый календарный месяц и на целый регион (без деления по клиентам).

Когда в dimension Регион=1, а dimension Клиент=All Клиент, measures План должен быть равен 6000, а получается 18000 (т.е. сумма планов всех клиентов данного региона: 6000+6000+6000). В CM следующая формула:
Код: plaintext
1.
Iif(IsLeaf([Дата].CurrentMember) and IsLeaf([Клиент].CurrentMember), [Measures].[План],(ClosingPeriod([Дата].[День],[Дата].CurrentMember),XXXXXX,[Measures].[План])

Подскажите, что должно быть вместо "XXXXXX"?
Там должно быть что-то следующее: должно быть пересечение множеств Регион и Клиент (относительно выбранного члена из dimension Регион), где исключить пустые значения и далее получить любой член из размерности Клиент, т.к. значение плана у них будет одинаковое.
Например, если для Регион=1 написать вместо "XXXXXX" - [Клиент].&[1], то все правильно отрабатывает, но нужно чтобы было автоматически для любого региона.
...
Рейтинг: 0 / 0
MDX как правильно...
    #33007349
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я предлагаю разбить это на две таблицы - План/Действительность, и в таблице План убрать колонку Клиент и держать время на гланулярности Месяц. После этого сделать 2 куба и соединить их в виртуальный поставив формулу как ValidMeasure(Plan).

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
MDX как правильно...
    #33007418
SSPEED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoshaЯ предлагаю разбить это на две таблицы - План/Действительность, и в таблице План убрать колонку Клиент и держать время на гланулярности Месяц. После этого сделать 2 куба и соединить их в виртуальный поставив формулу как ValidMeasure(Plan).


Спасибо, Моша. У меня так и есть - две разные таблицы фактов, т.е. План/Действительность. Сначала так и хотел, как Вы советуете, но потом на уровне SQL сделал View, которая объединяет Действительность/План.

Я насчет моего вопроса, то решилось все просто: нужно у Плана Agregate Function поставить max (а с Планом относительно размерности время - все просто, т.е. просто нужно суммировать данные выше уровня Месяц)

Моша, а вопрос ради интереса, что нужно было бы все-таки добавить в мой СМ, чтобы был возвращен любой член относительно выбранного Региона? ("...должно быть пересечение множеств Регион и Клиент (относительно выбранного члена из dimension Регион), где исключить пустые значения и далее получить любой член из размерности Клиент, т.к. значение плана у них будет одинаковое...")
...
Рейтинг: 0 / 0
MDX как правильно...
    #33008005
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaЯ предлагаю разбить это на две таблицы - План/Действительность, и в таблице План убрать колонку Клиент и держать время на гланулярности Месяц. После этого сделать 2 куба и соединить их в виртуальный поставив формулу как ValidMeasure(Plan).

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

И в измерении времени в кубе план сделать уровень день disabled?

Все класно в AS2K, у меня так и работает, но такое решение после миграции на Юкон лажу дает :-(
...
Рейтинг: 0 / 0
MDX как правильно...
    #33008620
SSPEED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfire MoshaЯ предлагаю разбить это на две таблицы - План/Действительность, и в таблице План убрать колонку Клиент и держать время на гланулярности Месяц. После этого сделать 2 куба и соединить их в виртуальный поставив формулу как ValidMeasure(Plan).

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

И в измерении времени в кубе план сделать уровень день disabled?


А как тогда заставить Excel правильно отображать?
Например, есть следующие таблицы фактов:
Табл1
Время
Регион
Клиент
Покупатель
Продажи (показатель)
Табл2
Время
Регион
Клиент
План (показатель)

Делаем, как предлагаете Вы и Моша - получаем неправильное (некрасивое) отображение в Excel! Когда в поле строк выкладываем dimension Клиент и Покупатель, а в поле данные План и Продажи - получаем все возможные значения кроме случая, когда План и Продажи пустые, а правильно было бы видеть только, когда План и Продажи заполнены!
Как заставить Excel не выводить случай: когда Продажи пустые, а План нет?
...
Рейтинг: 0 / 0
MDX как правильно...
    #33008991
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSPEED backfire MoshaЯ предлагаю разбить это на две таблицы - План/Действительность, и в таблице План убрать колонку Клиент и держать время на гланулярности Месяц. После этого сделать 2 куба и соединить их в виртуальный поставив формулу как ValidMeasure(Plan).

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

И в измерении времени в кубе план сделать уровень день disabled?


А как тогда заставить Excel правильно отображать?
Например, есть следующие таблицы фактов:
Табл1
Время
Регион
Клиент
Покупатель
Продажи (показатель)
Табл2
Время
Регион
Клиент
План (показатель)

Делаем, как предлагаете Вы и Моша - получаем неправильное (некрасивое) отображение в Excel! Когда в поле строк выкладываем dimension Клиент и Покупатель, а в поле данные План и Продажи - получаем все возможные значения кроме случая, когда План и Продажи пустые, а правильно было бы видеть только, когда План и Продажи заполнены!
Как заставить Excel не выводить случай: когда Продажи пустые, а План нет?

Вы в Excel работаете с данными из MSAS или из SQL?

В любом случае проще обсуждать проблему, когда перед глазами имеешь текст запроса MDX или SQL.
...
Рейтинг: 0 / 0
MDX как правильно...
    #33009160
SSPEED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfire

Вы в Excel работаете с данными из MSAS или из SQL?

В любом случае проще обсуждать проблему, когда перед глазами имеешь текст запроса MDX или SQL.

Работаю с данными из MSAS, подключаюсь из Excel к виртуальному кубу (куб сформирован на советах из этого топика)
Привожу пример рисунка из BO - хочется иметь возможность исключать строки: Store 2/Store 16/Store 22 (т.е. как я уже писал, относительно моего примера, это идентично случаю "...когда Продажи пустые, а План нет?...")
Вопрос: как это сделать в Excel или нужно писать MDX запрос, который бы исключал такие комбинации, если да, то плз укажите направление, где искать.
...
Рейтинг: 0 / 0
MDX как правильно...
    #33009289
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая мера у вас показывается? Факт или план?
...
Рейтинг: 0 / 0
MDX как правильно...
    #33009414
SSPEED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireА какая мера у вас показывается? Факт или план?
Допустим хотим посмотреть продажи Клиента1
1. Кладем размерность Клиент на ось строк и туда добавляем размерность Покупатель , а в поле данные кладем меру Факт ==> все ОК ( т.е. видим только тех покупателей, которые действительно что-то покупали у данного Клиента1 ).
2. Но как только добавляем меру План - получаем список всех Покупателей содержащихся в размерности Покупатели ! (это неправильно, т.е. мера Факт заполнена здесь только у тех Покупателей , которые что-то покупали у Клиента1 , а мера План заполнена у всех! Я думаю, это происходит из-за того что мера План заполнена у всех.)

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


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