Имя: Пароль:
1C
 
Вычислить коэффицент в таблице в разрезе нескольких колонок
0 Wefast
 
13.11.19
15:53
Есть таблица
Подразделение 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 unenu
 
13.11.19
15:57
Поместить в Вт, разбить на порции и для каждой порции рассчитать %.
можно все сделать одним запросов в несколько пакетов.

а можно наваять суперкостыльный код

дело вкуса, задача тривиальная
2 unenu
 
13.11.19
16:01
+(1) критерий разбиения на порции уникальная пара(подразделение+номергруппы)
в Вт пакета добавить поле НомерПорции по этому критерию и
для каждой порции получить проценты для каждой строки состава порции.
3 vova1122
 
13.11.19
16:10
Например еще так. Скопировать в новую ТЗ "Подразделение 1 НомГр1" и колонку с числами. Свернуть (числа суммировать). Добавить Индекс для быстрого поиска.
Потом в цикле по основной таблице пройтись. Для каждой строки основной таблицы искать в свернутой соотвествия (по проиндексованой колонке очень быстро будет). И осталость только поделить число из основной таблице на найденную суму в свернутой таблице. и будет вам процентр для каждой строки