У меня есть таблица:
a.si
a.p
a.pnsi
si - уникальный идентификатор, p - двойной, pnsi - ноль
Я бы хотел выполнить запрос на обновление в pnsi, используя этот подзапрос с переменной n:
(SELECT si FROM a as y WHERE y.si = a.si + n AND y.p > a.p)
Я бы хотел иметь возможность выполнять этот запрос при увеличении значений n от 1 до 100 000, каждый раз только для оставшихся записей, где pnsi по-прежнему равно нулю.
Запрос имеет два критерия:
1. То, что значение si, выбранное (y.si) в качестве a.pnsi, больше, чем a.si
2. То, что y.p больше, чем a.p
Цель этого состоит в том, чтобы сократить время обработки, так как эта процедура будет выполняться на таблице из более миллиона записей, и большую часть времени можно найти правильное решение с очень малым значением n. Запустив его таким образом, Access оценит n = 1, 2 ... (по возрастанию), в результате чего получится очень мало записей, в которых n будет увеличиваться до 100 000.
Мне нужен скрипт для увеличения значения n для повторения запроса на обновление n раз для оставшихся пустых записей. Сценарий должен отправить текущее значение переменной n в запрос на обновление (y.si = a.si + n). Цикл останавливается, когда больше нет записей для обновления или когда n достигает 100000. Есть идеи?