Равные периоды в остатке месяцев с начала года

Здравствуйте форумчане.
В давно написанной программе возникла задача равномерного распределения остатков чего-либо до конца года.
Никак не могу сообразить, как это лучше сделать.
Вот более подробно:
Имеется некая головная таблица
[code]
CREATE CURSOR kur (npp N(6,0),kolpl N(1,0))
* где kolpl случайное число от 1 до 4
*Заполняем
FOR i=1 TO 10000
INSERT INTO kur (npp,kolpl) VALUES (i, 1 + 3 * RAND( ))
NEXT
*Убеждаемся, что kolpl между 1 и 4
SELECT MIN(kolpl) as mipl,MAX(kolpl) as mapl FROM kur
**Создаем подчиненную таблицу
CREATE CURSOR child (npp N(6,0), mpm N(2,0))
[/code]
Задача состоит в том, чтобы записать значение npp и месяца mpm в дочернюю таблицу столько раз, сколько раз указано в поле kolpl головной таблицы. При этом значение поля mpm должно быть распределено примерно равными промежутками между оставшимися до конца года месяцами.
Если количество оставшихся месяцев до конца года меньше значения kolpl, то kolpl принимается равным количеству
оставшихся месяцев.
Например:
[code]
tm=1 && Текущий месяц
om=12-tm+1=12 && Количество оставшихся месяцев, включая текущий
*Если
kolpl=4
&&Количество записей в дочерней таблице 4, значения mpm 3,6,9,12
*Если
kolpl=1
&&Количество записей в дочерней таблице 1, значение 6
* и т.д.
*допускается ежемесячное указание значения mpm, если нет другого выходя или часть через какой-то промежуток, а часть ежемесячно
*Пример 2:
tm=10 && Текущий месяц
om=12-tm+1=3 && Количество оставшихся месяцев, включая текущий
*Если
kolpl=4
*то kolpl=3
*в дочерней таблице 3 записи 10, 11, 12
[/code]
и т.д.
Пробовал различные подходы, но без ручной корректировки никак не удается справиться с ситуацией. В итоге получается очень большая разница количества записей в разных месяцах.
Помогите, пожалуйста, справиться с этой ситуацией.

0

Автор публикации

Пользователи не найдены
Оставить комментарий
Авторизация
*
*
Генерация пароля