• ベストアンサー

accsessにて、複数テーブルから、重複データ抽出

accsess2002を使っています。 accsessに関しては初心者です。 よろしくお願いいたします。 複数のテーブル(6つ)すべてに、重複しているデータ(2フィールド)の抽出方法が、わからず、困っています。 アドバイスください。 よろしくお願いいたします。

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

こんにちは。 以下の方法では、如何でしょうか。 もっといい方法があるかも知れませんが、参考にしてください。 SELECT T1.項目1, T1.項目2 FROM (SELECT 項目1, 項目2, COUNT(項目1) AS A, COUNT(項目2) AS B   FROM TABLE_1 GROUP BY  項目1, 項目2) AS T1, (SELECT 項目1, 項目2, COUNT(項目1) AS A, COUNT(項目2) AS B   FROM TABLE_2 GROUP BY  項目1, 項目2) AS T2, (SELECT 項目1, 項目2, COUNT(項目1) AS A, COUNT(項目2) AS B   FROM TABLE_3 GROUP BY  項目1, 項目2) AS T3, (SELECT 項目1, 項目2, COUNT(項目1) AS A, COUNT(項目2) AS B   FROM TABLE_4 GROUP BY  項目1, 項目2) AS T4, (SELECT 項目1, 項目2, COUNT(項目1) AS A, COUNT(項目2) AS B   FROM TABLE_5 GROUP BY  項目1, 項目2) AS T5, (SELECT 項目1, 項目2, COUNT(項目1) AS A, COUNT(項目2) AS B   FROM TABLE_6 GROUP BY  項目1, 項目2) AS T6 WHERE (T1.A > 1 AND T1.B > 1)  AND (T1.項目1 = T2.項目1 AND T1.項目2 = T2.項目2)  AND (T1.項目1 = T3.項目1 AND T1.項目2 = T3.項目2)  AND (T1.項目1 = T4.項目1 AND T1.項目2 = T4.項目2)  AND (T1.項目1 = T5.項目1 AND T1.項目2 = T5.項目2)  AND (T1.項目1 = T6.項目1 AND T1.項目2 = T6.項目2)

その他の回答 (1)

noname#60992
noname#60992
回答No.2

いくつか方法は思いつきますが、 ・この抽出を何回行う予定ですか?(1回きりなのか、1日1回なのか、数分に一回なのか?) ・それぞれのテーブルにはどのくらいのデータ数がありますか? ・抽出にどの程度時間をかけられますか? >accessに関しては初心者です。 とありますが、クエリはどの程度わかりますか? VBAはわかりますか?

関連するQ&A

  • access・複数のテーブル・重複除外したデータ

    accessで複数のテーブルで重複しないレコードだけを抽出するSQL文を知りたいです。 フィールドは多数あり、「フィールドの内容が全て一致するレコード」以外のレコードを 重複しないレコードとして抽出したいと思っています。 テーブルは3つ以上ありますが、2つのテーブルで実行するSQL文でかまいません。

  • アクセスで重複データの抽出について

    アクセスで添付画像のようなテーブルがあり、重複データの抽出を行いたいです。 抽出結果は 120 0 となるようにしたいです。 つまり、 ・フィールド1を基準に、フィールド2が全て0だった場合のみ抽出する という条件です。 どのように行えばよいか、お分かりの方お教え下さい。 よろしくお願いいたします。

  • 重複しないデータの抽出について

    MYSQL5.0.77で DBをつくり テーブル1のAフィールドのデータから テーブル2のAフィールドのデータ、 テーブル3のAフィールドのデータ、 テーブル3のAフィールドのデータ、 のいずれにも重複しないデータのみ 抽出したいと思っています。 どのようなSQL文を書けばよいでしょうか? じぶんでいろいろ試しましたがどうしても出来ません。 どなたかご教授願います。

    • ベストアンサー
    • MySQL
  • 「主キー以外重複データ(フィールド多数)」の抽出

    タイトルのような抽出方法が必要になり、その出し方で困っています フィールドが100以上ある大きなテーブルが複数(フィールド構造は全く同じ)あり、 そのレコードを一つにまとめる為重複データを抽出し削除したいのです 条件は「主キー以外の全てのフィールドのデータが一致してる重複データ」であり、 それをどうやればAccessの機能で出せるのか悩んでいます。 最初はクエリでグループ化して出そうと思ったのですがこのフィールド数では全て グループ化はできず、 VBAで一行ずつループで処理しようにもキー以外の全フィールド一致とする検索条件のSQLのWHERE式が複雑すぎると出て処理できませんでした フィールド数が多大なテーブルで主キー以外完全一致の重複レコードをうまく抽出するにはどうすればいいのでしょうか?

  • 複数のテーブルの重複データを抽出するには

    現在 テーブル T_2011,T_2010,T_2009 の3つのテーブルがあり、それぞれには同じ形式の顧客情報が入っています。 例えば 顧客id,氏名,住所 この時、 T_2011には2011年に購入履歴のある方 T_2010には2010年に購入履歴のある方 T_2009には2009年に購入履歴のある方 のデータが入っております。 そこで、毎年購入がある方を抽出したいのですが どうすれば可能でしょうか? もちろん1つのテーブルに集めて、重複チェックをすれば 出るのですが、今後テーブル数が増えたり、2011年と2090年に 購入のある方など様々な形での抽出をする可能性があるため クエリなどを利用し一発で抽出する方法があればと考えて おります。 もちろん検索等を行い似たような例はあったのですが ちょっと理解ができなかったためご質問させて頂きました。 宜しくお願いいたします。 重複チェックのキーは、顧客IDとなります。 環境は、windowsXP、access2000となっております。

  • アクセスの重複データ抽出について

    アクセスで添付画像のようなテーブルがあり、重複データの抽出を行いたいです。 抽出結果は 1 50 4 1 -50 5 1 50 8 5 -70 19 5 70 1 となるようにしたいです。 つまり、 ・フィールド1が同じ 且つ フィールド2の絶対値が等しい ・ただしフィールド2が「0より大きいのみ」 または「0より小さいのみ」 の場合は抽出しない (プラスとマイナスの値が最低1つずつ含まれる) という条件です。 abs関数を使い、フィールド2の絶対値を出すのは出来たのですが、そこから先で行き詰っています。 どのように行えばよいか、お分かりの方お教え下さい。 よろしくお願いいたします。

  • AccsessとExcel双方のデータで一致しているものを抽出したいときは?

    はじめまして。よろしくお願いいたします。 Accsessはほとんど無知で、DBの構成などもわからないのですが まずは、質問をさせてください。 補足が必要なときは、随時補足させていただきます。 AccsessのDBに入っているデータが(仮に名前の名簿だとします)が3万件程度、 Excelファイルに同様のデータが1万件程度あります。 入っているデータは同じようなもので、 Excelの1万件は、Accsessの3万件の中に入っているはずですが、 どのデータが重複しているのかがわからないので、 重複しているデータを抽出、もしくは検索したいのです。 数が数だけに、1件1件検索するわけにもいかないので、 一括に近い形で検索できる方法が知りたいです。 どなたか、ご存知の方がいらっしゃいましたら、ぜひ教えてください!

  • 【Access】部分一致で不一致データを抽出したい

    クエリで2つのテーブルから、不一致データを抽出したいのですが、 完全一致だけでなく部分一致のデータも一致データとして取り除きたいです。 [テーブルA]フィールド1 000-0001 000-0001A 000-0002 000-0003 000-0004 [テーブルB]フィールド2 000-0001 000-0002 というようなデータで、結果は [結果] 000-0003 000-0004 というふうにしたいです。 (000-0001だけでなく000-0001Aというデータも取り除きたいのです。) Access初心者で、クエリウィザードを使用した重複データ抽出、不一致データ抽出、 およびクエリデザインを使用した重複データ抽出が何とかできる程度です。 初心者でも分かるようにご回答いただければ大変助かります。 よろしくお願いいたします。

  • テーブルからデータを抽出する場合のスピード

    お世話になっております。 データ抽出のスピードについて質問があります。 例えば3つのページを作るとします。それぞれ、IDで分けるとして、一つがaaa二つ目がbbb三つ目がcccとします。それぞれのデータをMySQLより抽出しようと思ってます。その際のテーブルのフィールドはどれも同じです。 一つの方法として、一つテーブルを作成し、そこに全てのデータを入れて、それぞれWHERE id = aaaなどとしてデータを抽出する方法。 二つ目は、それぞれIDごとにテーブルを作成し、それぞれのテーブルにそれぞれのデータを入れて抽出する方法。 どちらが負荷、速度共にいいのでしょうか。 私が思うに、一つ目の方法の場合、データが増えてきたときに、WHERE id = aaaなどとして抽出するのに時間がかかってしまうように思います。 ちょっと分かりにくい説明かと思いますが、どなたか宜しくお願いします。

    • ベストアンサー
    • MySQL
  • Access2000で重複データに・・・

    Access2000の重複データの処理について質問です。 あるフィールドの重複レコードを検索し、該当するレコードの別フィールドに「●」をつけようとしています。ただ、重複する最初のレコードには「●」をつけたくないのです。 例えば  aaa ・・・ (1)  bbb  aaa ・・・ (2)  ccc  aaa ・・・ (3)  eee というフィールドだった場合、(1)には「●」をつけずに(2)以降にのみつけたいのです。 重複クエリで重複レコードを抽出して重複テーブル作成→重複テーブルと元テーブルを組み合わせて更新クエリ作成という方法でやったのですが、そうすると(1)にも「●」がついてきます。(当然ですが・・・) 何か名案があれば教えてください。 やはり、VBAを使わないと無理でしょうか・・・?