|
Задачка со *
|
|||
---|---|---|---|
#18+
Добрый день. Имеется таблица фактов: - Ключевые поля: Месяц - Торговая точка - Товар - Признак (1,2,3,4...) - Фактический оборот Для каждого ключевого поля и признака есть свое измерение. Необходимо распределить оборот Торговой точки - Товара по признакам за выбранный месяц. Потом полученные данные ещё распределить по признакам прошлого месяца. Например, В текущем месяце к признаку 1 относится 10 уникальных связок Торговая точка - Товар и оборот по ним составил 500 шт. Надо определить к каким признакам относились эти связки в прошлом месяце и раскидать оборот 500 шт. по этим признакам в соответствии со связками. И так по каждому признаку, которых может быть любое кол-во. + Выбранный и относительный месяца должны быть динамическими. + Если связок не было в прошлом месяце, то их объемы не должны учитываться. Найден способ реализации, но он не подходит, т.к. не справляется с объемом данных за отведенное время, но дает необходимый результат. Не оптимальная реализация: Создана дублирующая группа мер с фактом оборота, но измерения месяца и признака для неё отдельные, а Торговые точки(ТТ) и Товары - общие с основной группой мер. Сверху mdx код: CREATE DYNAMIC SET CURRENTCUBE.[SELECTED] AS [Товар].[Товар].[Товар].MEMBERS*[ТТ].[ТТ].[ТТ].MEMBERS; CREATE MEMBER CURRENTCUBE.[Measures].[Факт] AS sum( NONEMPTY([SELECTED],[Measures].[Оборот относительный]) ,[Measures].[Оборот фактический] ) Где: [Оборот относительный] и [Оборот фактический] дубль одной и той же меры в разных группах мер. Вопрос к знатокам: есть ли другой способ решения задачки, но более оптимальный под большое кол-во строк? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2021, 16:48 |
|
|
start [/forum/topic.php?fid=49&fpage=2&tid=1857058]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 116ms |
0 / 0 |