• ベストアンサー

SQLでの更新クエリに関する質問

テーブルAの社員数の値をテーブルBの対応したIDの社員数の値で更新したいのですが、どのようなSQL文を書けばいいのでしょうか? テーブルA ID 会社名 資本金 社員数 1 ○×株式会社 1000万 70 2 △△株式会社 1億2000万 320 3 □□□株式会社 3000万 170 4 ○○△商事 1500万 34 テーブルB ID 社員数 2 337 3 175 例としてあげたので少ないレコード数ですが、実際はテーブルAのレコード数は数万件とあり、それに対するテーブルBのレコード数も数千件とあります。

noname#26506
noname#26506

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

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

update A set 社員数=B.社員数 from A, B where A.ID = B.ID でいかがでしょうか。

関連するQ&A

  • 更新クエリー

    ACCESS2000です。 Aというテーブル(レコード件数500件くらい)のValue1というフィールドをBというテーブル(レコード件数1件)のValue1というフィールドの値で全件更新したいのですが、どのようなSQLを書けばよいのでしょうか。 基本的なことだと思いますがよろしくお願いいたします。

  • 更新SQLの書き方

    次のテーブルW、Yがあります。 テーブルYの内容をテーブルWに更新するSQLを教えてください。 カーソル処理はNG、DBはORACLE9です。 よろしくお願いいたします。 更新方法は、 (1)コードAで結合する (2)テーブルYのコードB以上の値を持つ、テーブルWのレコードを更新する (3)テーブルWの更新先項目は、コードBの値に対応した数とする  (例 (1)Y.コードB=11 なら、W.コードB=11~の項目「数11」を更新する    (2)Y.コードB=15 なら、W.コードB=15~の項目「数15」を更新する) 【更新前】 ■テーブルY(更新元) コードA コードB 数 AAA    11    20 AAA    15    26 ■テーブルW(更新先) コードA コードB 日にち 数11 数12 数13 数14 数15 AAA    11    20060703 0 0 0 0 65 AAA    12    20060710 0 0 0 0 65 AAA    13    20060718 0 0 0 0 65 AAA    14    20060724 0 0 0 0 65 AAA    15    20060731 0 0 0 0 0 ↓ ↓ ↓ 【更新後】 テーブルW コードA コードB 日にち 数11 数12 数13 数14 数15 AAA    11    20060703 20 0 0 0 65 AAA    12    20060710 20 0 0 0 65 AAA    13    20060718 20 0 0 0 65 AAA    14    20060724 20 0 0 0 65 AAA    15    20060731 20 0 0 0 26 テーブルY(更新元)を「横持ち」にしておくと楽になるでしょうか? ■テーブルY(更新元) コードA コードB 数11 数12 数13 数14 数15 AAA    11    20 0 0 0 0 AAA    15    0 0 0 0 26

  • 更新クエリがわからない

    windows-xp、Access2003を使っています。 参考書に載っている更新クエリは「同一のテーブル内でデータを更新する」という内容で載っているのを見ました。 が、そうではなく・・・ 更新クエリを作成すると「レコードの更新」という欄が出てくるのですが、そこに、別のテーブルや別のクエリのデータを”ビルド”で作成することはできないのでしょうか? 試みたのですが、”パラメータの入力”というものが出てきてしまいました。 ついでにおわかりになれば、これも教えてください。 ↓↓↓ テーブルAとテーブルB(或いはクエリB)に、同じIDをもつデータがあります。そこで、テーブルAの指定するフィールドへ、テーブルBの新しいデータを入れ込みたい(更新)させたい。 すみませんが、宜しくお願い致します。

  • Access2003の更新クエリ、レコードの更新欄のフィールド名を自動的に入力するには?

    AとBという2つのテーブルが、全く同じフィールドを30個持っています。 AとBでIDが同一のモノのみ、AにBのデータを丸々更新したいのですが [B].[フィールド名1]というように、IDを除いた残り29個のレコードの更新の欄に 手入力する方法で現在行っています。 追加クエリなどだとフィールドが同じ場合は自動的にレコードの追加欄にフィールド名が現れるのですが 同様に更新クエリでもフィールド名を自動的に出す方法はありますか? 現在上記のような更新クエリを10件以上新規で作成しなければならないのですが 各件に29個も手入力で行うのが非常に面倒でなりません。 やはりSQL等で仕組んでいくようにするのでしょうか?

  • アクセスの更新クエリについて

    あいうテーブルの日付に、かきくテーブルの日付の値を更新したい場合はどうしたらよいのでしょうか? あいうテーブルの日付は複数レコード発生し、かきくテーブルの日付は1レコードです。 あいうテーブルの日付の値を一度で、かきくテーブルの日付の値に更新したいです。 アクセスのSQL文を以下の通りにするとエラーが発生します。 UPDATE DTあいう SET あいう.日付 = かきく!日付; アクセスのSOL文を教えてください!

  • 更新クエリでキー違反

    クエリAのあるレコードからテーブルBのレコードにデータを流そうとします。 テーブルBのレコードにデータがちゃんと入っている と上手くデータが流れて更新されるのですが、IDと 名前しか入っていなかったりするとキー違反になるのです。 とても抽象的ですが、 どうして大丈夫なときとダメなときが発生すると 考えられますか?

  • SQL文の構築について教えてください。

    SQL文の構築について教えてください。 こんばんは。Oracle9iのデータベース検索で、どうしてもSQLが思い浮かばないため、質問させていただきます。 ■Table ID    NUM   SIGN 100   1    A 100   2    A 101   1    A 102   1    B 103   1    B 104   1    C 首キーはID、NUMです。 上記のようなテーブルで、 IDが同一かつNUMが最大のもので、 SIGNが同一のレコードで、2件以外のレコードを抽出したいです。 (例表でいうと、ID104のレコードのみが抽出されるようにしたい) すこし急ぎなんですが、SQLが得意でお時間がある方、力を貸していただけないでしょうか。 よろしくお願い致します。

  • アクセスの更新クエリの質問です。

    ちなみにAccess2007を使用しています。 A,B,C,Dというフィールドが有り、AフィールドにはCodeが入っています。 Bフィールドには"bb"という言葉、Cフィールドには"cc"という言葉にそれぞれ書き換え、Aフィールドには、今から更新する1レコードを抽出するため、更新クエリ実行時に、パラメーターを入力するように設定しました。 しかし、更新するレコードは、全45000件中、6000件くらいあり、いちいちコードを入れるのが大変です。 もともと、書き換えるためのコードリストがエクセルデータとして有り、Accessにインポートすれば、コードリストをAccessのテーブルにする事も出来ます。このテーブルを使って簡単に、書き換えることは出来ないものなのでしょうか?

  • 更新クエリーについて

    更新クエリーについて教えて下さい。 元テーブルのAフィールドに値1,2,3 が入力されいます。それを 1を0 に 2を5 に 3を10に 更新する設定方法について教えてください。 <私が行った設定> 更新クエリーのレコードの更新欄に IIf ( [A] = 3 , 10, [A]) or IIf ( [A] = 2 , 5, [A]) or IIf ( [A] = 1 , 0, [A]) で実行したのですが、更新後の値が-1になります。  

  • sqlのJoinでこんなこと出来ますか、

    sqlのJoinでこんなこと出来ますか、 当方初心者につき宜しく御願いします。 テーブルAにはIDがありIDはユニークです。テーブルBにはIDと項目がありIDは複数件存在します。項目には「あ」又は「い」、「う」、「え」、「を」が入っています。idに対して「あ」だけの時もあれば、「い」、と「う」が存在する時もあります。1件または複数件存在します。 条件に「あ」を抽出するようにして、「あ」がないときは存在するがテーブルBには存在するという結果を作りたいのです。 ID=1、あ ID=2、NULL という結果を作りたいのです。テーブルの双方に存在して、かつ「あ」であれば「あ」以外はNULLのレコードを作りたいのです。 説明が悪くて申し訳ありませんが宜しく御願い致します。

    • ベストアンサー
    • MySQL