私はこれを検索しようとしてきましたが、正しい用語を使用しているかどうか確信が持てません。あるいは、それが不可能なだけかもしれません。しかし、私がやろうとしているのは、設定値より小さい合計値を構成するテーブル内のすべてのレコードを更新することです。
以下に例を示します。
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 未満のすべてのレコードを更新することです。そのため、ID 1 と 2 の合計を実行すると、22 未満の 20 になります。 processed_date に null を指定します。また、古いものから新しいものへと更新されるように動作させたいと考えています。
基本的に、擬似コードで記述する方法は次のとおりです。
UPDATE credits
SET date_processed = '8/1/2010'
WHERE SUM(amount) <= @total AND
credit_type = [debits]
しかし、私はこれがうまくいかないことを知っています。だから私は、いくつかの SQL マスターがアイデアを持っていることを願っています。
これをカーソル内に書き込むことができると確信していますが、これを実行するためのセットベースの方法があるかどうか疑問に思っています。
編集:私の状況をよりよく表すために、以下の表と簡単な説明を更新しました。