Добрый вечер! Думаю, можно логику выстроить примерно следующим образом. Не самое изящное решение, нужно время, чтоб отшлифовать и больше понимания бизнес-процессов, ради которых это делается.
1. Таблица поступлений: Дата, время, сумма, для идентичности некоторый порядковый номер
Добавляете в эту таблицу столбец с итоговой суммой всех поступлений включая текущую строку
2. Отдельная таблица с последовательностью выдачи: Дата, время, сумма и некоторый порядковый номер
3. Во второй таблице вычисляете, с какого поступления (ID) сможете оплатить. Алгоритм примерно такой:
- считаете сумму всей выдачи, выданной до времени текущей строки, включая текущую
- находите первую в хронологии строку с поступлениями, в которой сумма поступлений становится больше суммы выдачи. Это и будет то поступление (ID), которое покроет выдачу
Примерно так.