次のような SQL で更新クエリを書きたいと思います。
UPDATE A
SET A.PARENT_ID = [ID of another row]
FROM MY_TABLE AS A
私がやりたいことは、この更新が適用される行ごとに[ID of another row]
、次のようなクエリから部分を計算することです。
SELECT A.NAME, B.NAME, MAX(B.ID)
FROM MY_TABLE A, MY_TABLE B
WHERE A.NAME = B.NAME
だから基本的に:
- 行を更新するとき、更新中の現在の行と同じ名前を持つ他の行を見つけようとします。
- その中で、 が最も高い行を取得しようとします
ID
。 - そして、更新
PARENT_ID
中の現在の行のID
値を、見つかった行の値に更新します。
SQL Server 2008 でそのようなことを行う方法は何ですか?