Принятие строк имеет последовательные идентификаторы, что-то вроде этого может быть тем, что Вы ищете:
select top 1 *
from
Bills b1
inner join Bills b2 on b1.id = b2.id - 1
where
b1.IsEstimate = 1 and b2.IsEstimate = 1
order by
b1.BillDate desc
select top 2 *
from bills
where estimated = 1
order by billdate desc
Необходимо смочь сделать descensing отсортированный запрос на предполагаемом = верный и выбрать лучшие 2. Я не являюсь лучшим в SQL, таким образом, я не могу дать точную структуру языка
У Вас есть столбец для "числа оператора", например, если бы Q12008 был оператором 28 для конкретного клиента, то счет Q22008 был бы 29, счет Q32008 будет 30 (принимающий ежеквартальную тарификацию). Вы могли затем проверить, что числа оператора были смежны вместо того, чтобы иметь необходимость сделать управление датой.