Я пытался найти это и не уверен, что использую правильные термины. Или, может быть, это просто невозможно. Но я пытаюсь обновить все записи в таблице, которые составляют суммарное значение, которое меньше установленного значения.
Итак, вот пример:
ID type amount received_date processed_date
1 debit 10 7/1/2010 NULL
2 debit 10 7/2/2010 NULL
3 debit 10 7/3/2010 NULL
Теперь я хочу обновить все записи, сумма которых меньше 22 только те записи, которые имеют значение null для processing_date. Я также хочу, чтобы он работал так, чтобы он обновлялся от самого старого до самого нового.
Вот как я бы написал это в псевдокоде:
UPDATE credits
SET date_processed = '8/1/2010'
WHERE SUM(amount) <= @total AND
credit_type = [debits]
Но я знаю, что это не работает. Поэтому я надеюсь, что у какого-нибудь мастера SQL могут появиться идеи.
Я уверен, что мог бы написать это в пределах курсора, но мне интересно, есть ли способ, основанный на множестве, чтобы выполнить это.
РЕДАКТИРОВАТЬ: Я обновил таблицу и краткое описание ниже, чтобы лучше изобразить мои обстоятельства.