• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL2005 のクエリ文について)

SQL2005のクエリ文でテーブルAとテーブルBのポイントを差し替える方法について

このQ&Aのポイント
  • SQL2005のクエリ文でテーブルAの「来店ポイント」とテーブルBの「来店ポイント」とを差し替える方法について教えてください。
  • 中堅外食チェーンの板前がサーバ管理者までしていて、テーブルAとテーブルBの「来店ポイント」の差し替えについて質問します。
  • テーブルAとテーブルBの「会員No」と「来店ポイント」があり、テーブルAの「来店ポイント」をテーブルBの「来店ポイント」と差し替えるSQL2005のクエリ文を教えてください。

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

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

追記 前の回答で「標準的なクエリ」というのは取り消します。 (簡単だと思ったら、DBMSごとにだいぶ異なるようです) SQL Server 2005 では下のように、結合が使用できるようです。 (試してはいませんが・・・) -- テーブルを結合して更新する update a set a.visit_point = b.visit_point from a_table a, b_table b where a.member_no = b.member_no -- 相関サブクエリを使った例 update a_table a set visit_point = (select b.visit_point from b_table b where a.member_no = b.member_no) where exists (select null from b_table b where a.member_no = b.member_no) -- 更新する値が複数ある場合は set (col1, col2) = (select table1.col1, table2.col2 from table1 ...) のようにする。

zenigata711
質問者

お礼

ありがとうございました! 感謝、感謝、です。

その他の回答 (2)

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.2

どんなSQLを作ったのでしょう? ---- update テーブルA set 来店ポイント = b.来店ポイント From テーブルA a inner join テーブルB b on a.会員No = b.会員No Where a.来店ポイント <> b.来店ポイント

zenigata711
質問者

お礼

こちらのクエリの方が簡単だった模様です。 今後の参考にします。ありがとうございます。

回答No.1

SQL Server 2005 環境では試していませんが、私の手元の Access 2007 では下の様なクエリで更新できますよ。標準的なクエリですので SQL Server 2005 でも問題ないと思います。 update a_table a, b_table b set a.visit_point = b.visit_point where a.member_no = b.member_no table_a member_no visit_point 100000 10 100001 20 100002 30 table_b member_no visit_point 100000 100 100002 300 update 後 table_a member_no visit_point 100000 100 100001 20 100002 300 # zenigata711 様のご苦労をお察しします。

関連するQ&A