1.1 KiB
1.1 KiB
Решение
Суммы выбранных строк считаются один раз до упаковки внутри тройки (rule_id, A, B) как чистая функция.
elimination_amount сохраняет ранее согласованное значение абсолютного расхождения; новое eliminated_amount
содержит min(ΣA, ΣB) при пороге не более 5 %, иначе 0, и всегда 0 для manual.
Нулевая меньшая сторона даёт deviation_percent = null и нулевую элиминацию.
Упаковка не влияет на итог. Для обратной направленной пары клиент переставляет company_a_id и company_b_id.
Эталонный Excel используется только для сверки точных встречных строк: он списывает полную сумму каждой стороны,
поэтому его общий итог не равен системному правилу минимума.