• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLでSELECTした一覧をUPDATEする方法を教えてください。)

SQLでSELECTした一覧をUPDATEする方法を教えてください

このQ&Aのポイント
  • AテーブルとBテーブルをINNER JOINしてSELECTした結果を使ってUPDATEする方法を教えてください。
  • 指定の条件に合致するレコードの特定の項目を、別のテーブルの同じ項目で更新する方法を教えてください。
  • AテーブルとBテーブルを結合し、特定の条件に該当するレコードの項目を更新する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SQL Server 2005 という前提で回答します。 SelectによるUpdateの場合は、SETする内容が更新テーブルに対して確実に1つの結果でなければエラーとなります。 つまり、 Update TableA Set ColumnA = ( select 'a' from TableB ) (複数行帰る) ような書き方はできません。 上記のクエリの TableB が1レコードのみの場合、 TableAのColumnA列に全て 'a' という文字が入ります。   したがって、 ( select top 1 'a' from TableB ) で結果行が1レコードとなり更新可能かと思います。 ちなみに、BテーブルのCodeが同じであればPointZanは全て同じ値がはいるのでしょうか?それとも、主キーであり常に1レコードのはずなのにエラーとなっている? -----------------代替案------------------- または、質問者様のクエリはどうも構文のエラーのような気がします。 AテーブルのPointZan 列を、BテーブルのPointZan と同じ値にUpdateしたいということでしょうか? でしたら、 update A set A.PointZan = B.PointZan from A inner join B on B.Code = A.Code where (B.TrDate = '091012') AND (B.Comment = '失効中止') こちらで更新可能かと。

関連するQ&A