• 締切済み

テーブルの更新について

Aというテーブル(以下A)に、Bというテーブル(以下B)の変更部分を反映させたいのですが、 何かいい方法があったら教えてください。 まずAをコピーしてBを作成しました。 Bの内容を一部変更し、変更したレコードには判定フィールドに"1"を立ててあります。 このBでの変更部分をAにも反映させたいのですが, 初めのAの内容が若干変わっています。 変更したデータは2,000件くらいあります。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <大元になっているA> 商品コード/商品名/取引先名/・・・・/判定/ A001/はさみ/川崎文具店/・・・・// A002/消しゴム/沖縄商店/・・・・// A003/ホッチキス/新潟文具店/・・・・// B004/付箋/新潟文具店/・・・・// B005/ガムテープ/浦安文具店/・・・・//         ・         ・ <B> 商品コード/商品名/取引先名/・・・・/判定/ A001/はさみ/ヤマグチ文具店/・・・・/1/ ←変更 A002/消しゴム/沖縄商店/・・・・// A003/ホッチキス/千葉商店/・・・・/1/  ←変更 B004/付箋/新潟文具店/・・・・// B005/ガムテープ/浦安文具店/・・・・//         ・         ・ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 夜間バッチではなく、日中のシステム稼動中にテーブルの更新を行いたいので、 システムへの影響も考え、できるだけ早く更新処理をしたいです。 今思いつく方法としては、 ・VBでテーブル更新を行うプログラムを作成。 ・SQLのスクリプトを作成。 ・アクセス又はSQLServerの機能を利用。 の3つです。 これ以外に何か方法がありましたら教えてください。 また、上記の方法でこんなふうにしたら処理が早いよ、 などありましたら教えてください! よろしくお願いします。

みんなの回答

  • imp1555
  • ベストアンサー率57% (28/49)
回答No.1

対象データベースは何ですか? Oracle? SQL Server? Access? それにより方法が異なると思います。

youko_puri
質問者

補足

対象DBはAccessです。 結局、テーブルAを削除して、テーブルBをコピーするようになりました。 せっかく回答いただいたので、 もし、何かいい方法がありましたら、 今後の参考にもしたいので教えてください。 よろしくお願いします。

関連するQ&A

  • 同一テーブル内での比較(2つの条件での比較)

    大変申し訳ありません。ほかにも似たようなのがあるのですが、応用が利かずわかりませんので、ご教授頂けると幸いです。 以下のようなテーブルがあり、価格が異なるところを差額一覧を出したいと思っております。 【テーブル構成】 商品ID、商店ID、価格(円) というテーブルがあり、 商品A、商店1、1000 商品A、商店2、1500 商品A、商店3、800 商品B、商店1、2000 商品B、商店2、1700 商品B、商店3、2600 ・・・(多くの商品データがあります) というデータが格納されております。 商店1を基準に、商品毎に商店2、3の価格差を大きい順にソートして出したいと考えています。 SQL分ではどのように記載すれば良いでしょうか? (今回の場合の希望出力が以下のような感じです。) 価格差、商品名、商店 (←これは当然、出力されない) 600、商品B、商店3 500、商品A、商店2 -200、商品A、商店3 -300、商品B、商店2 ご教授頂けると幸いです。

    • ベストアンサー
    • MySQL
  • 同一テーブル内での比較(最新データによる比較)

    大変申し訳ありません。本日も質問させてもらったのですが、一部情報(履歴)が不足していて追加で質問させてください。 以下のようなテーブルがあり、価格が異なるところを差額一覧を出したいと思っております。 (先ほどは2名の方に回答頂き、すみませんベスト10の設定がわからず設定できなくて、すみませんでした。) 【テーブル構成】 商品ID、商店ID、価格(円)、履歴 というテーブルがあり、 商品A、商店1、1000、1 商品A、商店2、1500、1 商品A、商店3、800、1 商品A、商店1、2000、2 商品A、商店2、2500、5 商品A、商店3、1800、3 商品B、商店1、2000、1 商品B、商店2、1700、1 商品B、商店3、2600、1 商品B、商店1、2500、4 商品B、商店2、2000、6 商品B、商店3、2800、7 ・・・(多くの商品データがあります) というデータが格納されております。 商品と商店の区分ごとに履歴の最も大きいものを取り出し (←追加) 商店1を基準に、商品毎に商店2、3の価格差を大きい順にソートして出したいと考えています。 SQL分ではどのように記載すれば良いでしょうか? (実際に比較したデータは以下を抽出し)【履歴の古いのは無視】 商品A、商店1、2000、2 商品A、商店2、2500、5 商品A、商店3、1800、3 商品B、商店1、2500、4 商品B、商店2、2000、6 商品B、商店3、2800、7 ・・・(多くの商品データがあります) (今回の場合の希望出力が以下のような感じです。) 価格差、商品名、商店 (←綱目です。) 800、商品B、商店3 500、商品A、商店2 -200、商品A、商店3 -500、商品B、商店2 ご教授頂けると幸いです。 ちなみに、教えて頂いたSQLをもとに以下のようにやってみましたが、うまくいきませんでした。。。 全くよくわかっていません。少し解説を入れて頂けると幸いです。 ------------------------------------ SELECT a.価格 - b.価格 AS 価格差, a.商品ID AS 商品名, a.商店ID AS 商店 FROM 対象テーブル a INNER JOIN 対象テーブル b ON (a.商品ID = b.商品ID AND b.商店ID = '商店1') WHERE a.商店ID <> '商店1' AND a.履歴 = (SELECT MAX(a.履歴)) AND b.履歴 = (SELECT MAX(b.履歴)) 【←追加】 ORDER BY a.価格 - b.価格 DESC; ---------------------------------------- select t2.価格-t1.価格 as 価格差 ,t1.商品名 ,t1.商店 from テーブル1 as t1 left join ( select 価格,商品 from テーブル1 where 商店=商店1 ) as t2 on t1.商品 = t2.商品 where t1.商店<>商店1 AND a.履歴 = (SELECT MAX(a.履歴)) AND b.履歴 = (SELECT MAX(b.履歴)) 【←追加】 ORDER BY t2.価格 - t1.価格 DESC;

    • ベストアンサー
    • MySQL
  • テーブル間の更新クエリにおいて

    Access2010で入力フォームを作成しています。 一時データとしてテーブルAを連結サブフォームとして編集します。保存ボタンをクリックするとメインのテーブルB(Aとフィールド構成は同じ)へA、Bのフィールド間で値が異なる場合、上書き保存をするという更新クエリを用意しています。 質問はテーブルAでフォーム上、オプショングループのラジオボタン(項目はテキスト型 値リストは0と1)に設定した項目が初期値のnullから入力したデータがメインのテーブルBに更新できないので困ってます。 連結フォームなので、テーブルAに値が入っており且つBと値が異なるのはデータビューで確認しています。ただ更新クエリでの選択(データビュー)に載ってこない。 この項目がテーブルBに反映されるのは予めインポートで0もしくは1が入力されていた状態から変更した場合と他の項目も合わせて値に変更があった場合のみでした。 クエリの抽出条件はテーブルA.項目<>テーブルB.項目としています。他の項目もor条件で同じ設定にしています。切り分けのため、このオプショングループの項目だけを変更した場合のクエリにしても反映はされませんでした。 考慮すべき点あればご教示ください。 よろしくお願いいたします。 どうかお助けくださいませm(__)m

  • テーブルの一部を別のテーブルを使って更新したい

    テーブルA…[住所]、[氏名]、[電話番号]、[携帯番号]、[変更日] テーブルB…[氏名]、[自宅電話・携帯番号]、[変更日] Bの[氏名]と[自宅電話・携帯番号]が、Aの[氏名]と[電話番号]、[携帯番号]に一致した場合、Aの[変更日]がBの[変更日]に更新されるようにしたいです。 以前、似たような質問で回答して頂いたのですが、条件が二つになり指定方法が上手くいかなくなってしまいました。 お手数お掛けしますが回答宜しくお願いします。

  • ACCESS2000 テーブルの更新方法

    テーブルAがデータベース(商品番号、単価)が入力されています。 テーブルBが入庫されたデータ(オーダー番号、商品番号、個数)が入力されてます。 クエリで 入庫されオーダー番号を入力すると、テーブルBから入荷した商品番号、個数、テーブルAから単価が表示されるようになっています。 商品番号でリンクさせている状態です。 そこで単価に変更があった場合、この時点でテーブルAの単価を上書き訂正したいのですが、入力できませんでした。 何かよい方法はありますか?アクセスはじめたばかりでよくわかりませんが、よろしくお願いします。

  • ACCESSでテーブルを更新する時で

    テーブル(1)のある項目で、テーブル(2)のある項目を更新したいのですが・・    項目 → No ・・・ 更新a 更新b テーブル(1)  001     100 200 テーブル(2)  001      50  50          ↓          ↓ 【更新後】 001 100 200 どの様にすればできますか教えて下さいませんか。 《クエリーの更新を使えばできそうなんですが、実際にどうすれば良いのかよく解りません》       

  • ピボットテーブルの集計方法について教えて下さい

    ピボットテーブルの集計方法についての質問です。 下記のような、商品名ごと/更新日ごとの出荷数量の集計表(ピボットテーブル使用)があります。         商品A ○月×日更新 100      ○月△日更新 200      商品A計   300 商品B ○月×日更新 200      ○月△日更新 300      商品B計   500 この集計表の"商品A計"や、"商品B計"を、"×日更新の数量と△日更新の数量の差" (商品Aなら、商品A計=100)としたいのですが、可能でしょうか? どうかご教授頂きたく、よろしくお願い致します。m(__)m

  • ACCESS2000を使って複数のテーブルを照合する方法について

    ACCESS2000を使用して下記のような3つのテーブルがあったとします。 1.メインテーブル   商品名   コード 1 りんご   012 2 りんご   022 3 バナナ   200 4 バナナ   201 5 イチゴ   100 2.A商店テーブル   商品名   コード 1 りんご   012 2 バナナ   200 3 バナナ   201 3.B商店テーブル 1 りんご   022 2 バナナ   201 テーブル1~3を照合して作製したいクエリ   商品名   コード  A  B 1 りんご   012  ○  × 2 りんご   022  ×  ○ 3 バナナ   200  ○  × 4 バナナ   201  ○  ○ 5 イチゴ   100  ×  × のように複数のテーブルを参照し、テーブル1のフィールドにある内容と同一のものがどのテーブルに存在するまたは、存在しないをがわかるような一覧リストを作成したいのですが、具体的にはどのようにしたら良いのでしょうか。 よろしくおねがいいたします。

  • テーブルの更新したい。

    教えてください。 A と Bというテーブルがあり、BのデータをAに更新後、Bのフィールド[最終YMD]に日付をいれたい。 NOW()を使用したい。 下記のようにモジュールを分からないなりに作成したのですが テーブルAは、更新されるのですが 次をどのようにしたら良いかわかりません。 宜しくお願いいたします。 Function DONEW_INP(FORMNAME) 'Dim Q As QueryDef, MyDB As Database, F As Form Dim T1 As Recordset, T2 As Recordset Set MyDB = CurrentDb Set F = Forms(FORMNAME) ' Set Q = MyDB.QueryDefs("INP_MST検索") Q(0) = F("No") Q(1) = F("倉庫No") Q(2) = F("ID") Set T1 = Q.OpenRecordset() Q.Close T1.Edit                         ’テーブルAにテーブルBを更新。 T1("0") = Val_0(T1("0")) + Val_0(F("01")) T1("1") = Val_0(T1("1")) + Val_0(F("11")) T1("2") = Val_0(T1("2")) + Val_0(F("21")) T1.Update T1.Close Set Q = MyDB.QueryDefs("INP_台帳検索") Q(0) = F("No") Q(1) = F("区分") Q(2) = F("種類") Q(3) = F("倉庫No") Set T2 = Q.OpenRecordset() Q.Close 'T2.Edit                  ’Bのテーブルの更新。 'T2("最終YMD") = Now()  'T2.Update 'T2.Close  End Function

  • フォームのデータを更新したらテーブルも更新したい。

    こんにちは。いつもお世話になります。 すみません早速教えていただきたいのですが テーブル1 備品ID 商品名 場所 テーブル2 ID 商品名 担当者 備品ID クエリ1  テーブル1とテーブル2を備品ありで絞り込んでいる (追加クエリ“テーブルX”作成) テーブルX ID 商品名 備品名 場所 担当者名 フォーム1 ID 商品名 備品名 場所 担当者名 (レコードセットテーブルX) このフォームの場所を変更した時に、 フォームのIDとテーブル1のIDの同じものの場所 を更新したいのですが、 初心者過ぎてなんと書けばいいのか分からず困っております。 どうかどなたか教えてくださいよろしくお願いいたします。