Владимир, только средствами SQL здесь не обойтись. Я бы сделал примерно так...
Сначала делаешь простую выборку из БД:
select o.Контрагент, o.ДокументОтгрузки, d.Долг, o.СуммаДокумента
from ДолгиКонтрагентов d, ДокументыОтгрузки o
where d.Контрагент = o.Контрагент
order by o.Контрагент, o.СуммаДокумента (ASC | DESC)
А дальше проходя по каждой записи этого ResultSet'а суммировал бы СуммаДокумента, и при превышении этой суммы значения в поле Долг выводил бы все предыдущие записи для этого Контрагента.
Сортируя исходный ResultSet по возрастанию или по убыванию поля СуммаДокумента можно добиться того чтобы в результирующий резалтсет попадали сначала документы с маленькой СуммойДокумента или наоборот сначала с большой СуммойДокумента. Можно сделать также чтобы выбирались документы по порядку их поступления в БД. И так далее...
Помогите составить запрос
Всем спасибо за ответы. Я понял, что без дополнительной обработки выборки не обойтись. Меня собственно и интересовало, а можно ли получить необходимые данные одним запросом.