Есть таблица
Подразделение 1 НомГр1 Ном1 10
Подразделение 1 НомГр1 Ном2 20
Подразделение 1 НомГр2 Ном3 30
Подразделение 2 НомГр1 Ном4 40
Подразделение 2 НомГр1 Ном5 60
Нужно получить таблицу
Подразделение 1 НомГр1 Ном1 10 33,3333%
Подразделение 1 НомГр1 Ном2 20 66,6666%
Подразделение 1 НомГр2 Ном3 30 100%
Подразделение 2 НомГр1 Ном4 40 40%
Подразделение 2 НомГр1 Ном5 60 60%
Как по всей таблице такое определить(чтобы общий процент был 100) я вроде находил. Но как в рамках какой то группы не ясно.
Потом у меня есть еще таблица с НомГр, Подразделением и статьей затрат
Каждую сумму из этой таблице мне потом нужно распределить по 1 таблице по тем процентам что я найду.
Как это сделать оптимально?
В голове только овер9000 циклов
Где я сначала обхожу 1 таблицу с группировками
Выгружая на каждом шаге выборку с НомГР, ищу внутри процент и записываю в новую таблицу значений все это.
Потом обхожу циклом 2 таблицу, отбором ищу нужные строки и распределяю свою сумму умножая на найденный процент.
+(1) критерий разбиения на порции уникальная пара(подразделение+номергруппы)
в Вт пакета добавить поле НомерПорции по этому критерию и
для каждой порции получить проценты для каждой строки состава порции.
Например еще так. Скопировать в новую ТЗ "Подразделение 1 НомГр1" и колонку с числами. Свернуть (числа суммировать). Добавить Индекс для быстрого поиска.
Потом в цикле по основной таблице пройтись. Для каждой строки основной таблицы искать в свернутой соотвествия (по проиндексованой колонке очень быстро будет). И осталость только поделить число из основной таблице на найденную суму в свернутой таблице. и будет вам процентр для каждой строки
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший