powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как в MS OLAP построить куб с выч. полем кол-ва зависящим от выбранной ед. изм.
4 сообщений из 4, страница 1 из 1
Как в MS OLAP построить куб с выч. полем кол-ва зависящим от выбранной ед. изм.
    #32083398
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые коллеги! Помогите, плиз!
Есть вот такая задачка. Нужно в OLAP кубе выводить поле с количеством продаж товара в выбранных пользователем единицах измерения товара.
Для примера построим такую модель данных:
1. Таблица измерения "Товары" (типа Parent-Child)
-Id_Child
-Id_Parent
-Name_Child
2. Таблица справочника "ЕдиницыИзмерения"
-Id
-Name
3. Таблица справочника "КоэффициентыПересчётаЕдиниц"
-Id_Edinica
-Id_Tovar
-K
Смысл в том что для пересчёта в нужную единицу достаточно поделить количество на коэффициент пересчёта выбранной единицы для данного товара.
4. Таблица фактов (для примера)
-Id_Tovar
-Kol

Вопрос в том как построить OLAP куб для достижения такой задачи.
Я попытался на основании справочника "КоэффициентПересчётаЕдиниц" сделать измерения. Но не могу понять как построить формулу вычисляемого поля, в котором бы количество делилось бы на нужный коэффициент.
Есть здесь и ещё одна "засада".
Товарное измерение представляет из себя иерархию, и коэффициенты пересчёта, в справочнике "КоэффициентПересчётаЕдиниц" будут заданы только для самых нижних (внутренних) элементов иерархии (т.е. товаров). Верхние же элементы иерархии – это группы, виды, классы товаров. Соответственно в ячейках на уровнях этих элементов необходимо не делить количество на не существующий коэффициент, а складывать ниже стоящие элементы.
Подскажите пожалуйста как всё это сделать.
Конечно может быть я много хочу от OLAP, а может просто не правильно построил модель данных.
Буду благодарен за любой совет!!!
...
Рейтинг: 0 / 0
Как в MS OLAP построить куб с выч. полем кол-ва зависящим от выбранной ед. изм.
    #32083408
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый простой способ решить Вашу проблему - это как Вы уже сказали создать вычисляемое измерение:

with member measures.[nuzhnaya edinica] as
'
iif( isleaf(Tovar.currentmember), measures.ЕдиницыИзмерения/КоэффициентыПересчётаЕдиниц,
SUM(Descandants(Tovar.currentmember,Tovar.imya_tovara), [nuzhnaya edinica]) )
'

Пожалуй можно использовать Custom Rollup Formulas and Custom Member Formulas, но пока не вижу необходимости.

Зачем Вы создаете Товар как Parent-Child? У Вас есть не симетричная иерархия товаров, т.е не все товары имеют Категорию, Под-категорию и т.д? Дело в том, что p/c не самый эффективный вид иерархий, если можете, то его не используйте.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Как в MS OLAP построить куб с выч. полем кол-ва зависящим от выбранной ед. изм.
    #32083414
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ!
Да, теоретически эта иерархия может быть не симетричной. То есть, например, по некоторым группам товаров необходим подробный OLAP отчёт, а по некоторым - достаточно выводить информацию целиком о группе. Т.е. в справочнике "Товары", для данной группы вообще не будет подчинённых товаров. Ну и выше по иерархии соответственно.
С одной стороны криво, с другой - жизненно :)
Спасибо, ещё раз!
...
Рейтинг: 0 / 0
Как в MS OLAP построить куб с выч. полем кол-ва зависящим от выбранной ед. изм.
    #32083419
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда Вам возможно нужена Ragged иерархия, а не p/c.
Если хотите можно в BOL почитать в статье: "Ragged Dimension Support" и "Dimension Hierarchies".

П.С.Я не настаиваю, можете и п/ч использовать, а может и проще можно сделать.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как в MS OLAP построить куб с выч. полем кол-ва зависящим от выбранной ед. изм.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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