Access97クエリーでデータ抽出・重複削除の設定方法

このQ&Aのポイント
  • Access97のクエリーで、約20000レコードのCSVファイルから重複を削除したデータを抽出する方法について教えてください。
  • Access97のクエリーで、外部データのインポートでTDLを作成し、重複クエリーを走行して10000レコードの重複を確認しました。作成したTBLから重複者がいないデータを抽出する方法を教えてください。
  • Access97のクエリーで、TBLから重複者がいないデータを抽出する方法について教えてください。
回答を見る
  • ベストアンサー

Access97のクエリーについて

Access97のクエリーで次のようなデータ抽出をしたいのですが、設定方法が良く分かりません。 1.約20000レコードのCSVファイルを外部データ   のインポートでTDLを作成。 2.重複クエリーを走行すると、約10000レコードが   重複していた。 3.作成したTBLから重複者がいないデータを抽出した   い。 イメージ: 処理前  a,2222,111,1,1234567  a,1111,100,1,0001234  b,0001,234,1,5555511  c,0003,001,1,0005555  c,0005,201,1,3345678  ↓(クエリー) 処理後  a,1111,100,1,0001234  b,0001,234,1,5555511  c,0003,001,1,0005555 どのような、関数、クエリーを使えば実現できるのでしょ うか。ご教示の程よろしくお願いします。

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

  • ベストアンサー
  • stork
  • ベストアンサー率34% (97/285)
回答No.2

>1段階目では、区分コードでの選択 区分コードって質問の例でいくとa,b,cってやつですよね。 1.生データをインポート(重複データあり) 2.テーブル作成クエリで一時テーブルの作成   (区分コードでグループ化し、日付の最大値をとる) 3.生データと一時テーブルを区分コードと日付で関連付けし、テーブル作成。 各クエリは、テーブル作成クエリでなく選択クエリでも動作しますが、一時テーブルを作ったほうがレスポンスがよいと思われるので、一時テーブル作成としました。 各クエリの例は、列名が不明の為書きにくいので省略しました。分からない場合は補足要求するか、新たに質問してください。

nushi2
質問者

お礼

アドバイスのヒントとアクセスのヘルプを参照して実現 することができました。 ありがとうございました。 <参考> 1.アドバイスの通り、区分コードエリアと日付エリアを  クエリーに取り込み、集計ボタンをクリック。 2.集計エリアの区分コードの所をグループ化、日付エリ  アを最大に設定のうえ、テーブル作成クエリーを作成。 3.上記1のテーブルと上記2のクエリーのキーにリレー  ションを設定。

その他の回答 (1)

  • stork
  • ベストアンサー率34% (97/285)
回答No.1

補足要求です。 一番左にある列が重複ないようにするんですよね。 aを例にとると 処理前  a,2222,111,1,1234567  a,1111,100,1,0001234 処理後  a,1111,100,1,0001234 となっていますが、2列目以降のデータは、  1.各列の最小値や最大値をもってくる。  2.日付などある列で判断し、その行を丸ごともってくる のいずれの方法をとりますか? また、それ以外の値をもってくる場合は何を持ってくるのか教えて下さい。

nushi2
質問者

お礼

アドバイスのヒントとアクセスのヘルプにより 実現することができました。 ありがとうございました。

nushi2
質問者

補足

2列目以降のデータを基に、2段階の判定が必要となります。 1段階目では、区分コードでの選択 1段階目を抜けてきた同一キーのレコードが存在した時に、 2段階目として、日付の新しい方のレコードを持ってくることが必要となります。 どうしたら良いのでしょうか。 教則本等を調べているのですが、分かりません。 よろしくお願いします。

関連するQ&A

  • Access 抽出漏れ行をみつけるクエリ

    図のようなテーブル「TBL_A」がCSVファイルの形で提供されます。この「TBL_A」は全レコードのテーブルあり「正」データばかりのマスターと考えてください。 このCSVデータをACCESSによみこみテーブル「TBL_A」としてあります。 「TBL_A」をいろいろな人が加工したり、抽出作業をしているのですが、「TBL_B」のような抽出をかけて渡してきた人がいたので、「データ(レコード)が足りないので、不一致クエリで足りないのを見つけておいてください」と頼んだところ、何度やってもみつけられないというので、自分でも試してみました。 図でいえば、ピンク色のレコード(行)をみつければいいのですが、Accessで不一致クエリをかけてみたところ、図の下部のようなデータしか抽出できませんでした。 やったことは2つ 1) TBL_Aを左にし、右にTBL_Bを右に配置し、不一致クエリウィザードでの矢印(→)で商品コードを紐付けた 2) 最初にTBL_AとTBL\Bをクエリで「商品コード」「価格」ぞれぞれ結びつけ(つまり2つの線)、「商品コード」「価格」を「クエリ1」として抽出。その「クエリ1」を上のTBL_Bの位置にもってきて、不一致クエリ。 どちらとも、結果は図の下のようになってしまいます。 図の上部のピンクの部分を確実に抜き出すには、どのようなクエリ(またはSELECT文)が必要でしょうか。 メモ: ・商品コードは「テキスト型」です。 ・商品コードが同じでも販売場所やいろいろな経緯で価格が違っていたり、返品の場合は返金するためマイナス金額がつくことがあり、商品コードと価格はかならずしも合致しません。 ・Accessは2010か2013を使っています。 ※今回はVBAの質問ではありません。

  • ACCESSとORACLEで抽出結果が異なる

    いつもお世話になっております。 ACCESS2000を扱っております。 ACCESSのデータベースにODBCを接続してORACLEの テーブルをリンクテーブルとしてインポートします。 そして、ACCESSのテーブルとORACLEのテーブルを LEFT JOIN を行いクエリーを作成したのですが、 正しい結果が抽出できません。 ただし、ORACLEのテーブル構成・データと全く同一の ACCESSのテーブルを作成し、クエリーを作成したところ 正常に動作しております。 SQLは以下のような内容となっております。 sSQL = SELECT TBL_1.A, TBL_1.B, TBL_1.C FROM TBL_1 LEFT JOIN TBL_2 ON TBL_1.A = TBL_2.A AND TBL_1.B = TBL_2.B AND TBL_1.C = TBL_2.C WHERE TBL_2.A IS NULL AND TBL_2.B IS NULL AND TBL_2.C IS NULL TBL_1がORACLEより引っ張ってきたリンクテーブル、 TBL_2がACCESSに存在するテーブルになります。 以上のSQLで、TBL_2に存在なくTBL_1に存在するレコード、及びTBL_1とTBL_2でキー項目は同じだが 内容が異なるレコードを抽出できると考えているのですが、TBL_2に存在なくTBL_1に存在するレコードしか 抽出できません。 個人的には、処理する件数が多大であることが影響しているのかとも考えているのですが・・・。 (両テーブルともに約20万件レコード) クエリーを分割することで解決はしたのですが、 原因究明を求められておりまして大変困っています。 皆様の知恵を借りたいです。宜しくお願いいたします。

  • MicrosoftAccess2000の選択クエリについて教えて下さい

    MicrosoftAccess2000の選択クエリについて教えて下さい 当方は全くの素人ですが、なんとかAccess2000を用いてデータベースを作成しています。 ところが、時々クエリの内容を全く変更していないのにクエリ結果が違ってくる、といった現象が起きてしまいます。原因が分からず対処できずにいます。 どうかお知恵をお貸し下さい。 事例) Aテーブル(レコード数50)を基にした、Bクエリ(選択クエリ)があるとすると、 Bクエリの結果が、正しくは50レコードである筈なのに、100レコード(2倍)、あるいは400レコード(4倍)抽出されてしまう現象が起こります。(重複して抽出されます。) この現象は1ヶ月のうち1~2回しか起きません。 データベース構造をコピーし、Aテーブルをインポートした後にBクエリを開くと、もうこの現象は起きません。

  • マイクロソフト Accessのクエリーについて

    Accessにおいて、 (1)A列、B列、C列をもつデータがテーブルにあります。 これに対して、 (2)A列、B列、C列、D列、E列をもつデータがテーブルに別途あるとします。 (1)に対して、(2)はA列、B列、C列に合致しているデータがいくつあるのか、            A列、B列のみ合致しているデータがいくつあるのか、           A列のみ合致しているデータがいくつあるのか、           A,B,Cいずれも合致していないデータはいくつあるのか? それぞれのデータを(1)と照らし合わせて(2)から抜き出そうとした場合には、 どのような抽出方法が効率いいのでしょうか?またクエリーは複数に なってもかまわないのですが、いずれかで抽出された(2)のデータはいずれも 重複して抽出されない、かぶらない(上から順に抽出をかける)ことを前提にした場合の もっとも適な抽出方法はありますでしょうか。 以下はおまけです(もし余力があれば) ↓ また3つ合致しているデータにはそのレコードの横に列を新しく追加して1とふる、   2つ合致しているのはそのコードの横に列を新しく追加して2とふる   1つ合致しているのはそのコードの横に列を新しく追加して1とふる   0つ合しているのはそのレコードの横に列を新しく追加して0とふる、 という作業をAccessでするとした場合、一致クエリー&更新クエリー&マクロ等で 実現できるのでしょうか? もしよいお知恵あればご教授いただきたく、 お願いいたします。

  • ACCESS2000でのレコード抽出

    OS:WindowsXP ACCESS2000 あるフィールドの値が最大となるようなレコードを選択クエリで 抽出しようとしているのですがうまくいきません。 テーブルのフィールドは4個あります。 テーブル [系列] [優先度] [データ1] [データ2] ここで各系列ごとに優先度が最大となるレコードのみを 抽出したいのです。 系列、データ1、データ2は重複がありえます。 優先度は系列を跨いだ重複はありますが、 同系列内での重複はありません。 レコードの例) 1:系列A 優先度1 データA データB 2:系列A 優先度2 データC データD 3:系列B 優先度1 データE データF 上記の例で言いますと、レコード2:とレコード3:のみを 抽出するクエリを作成したいのです。 集計クエリで優先度のフィールドを「最大」にしても、 3つのデータ全てが抽出されてしまいます。 どなたか解決策をご教示ください。

  • アクセスの重複クエリ

    二つのテーブルやクエリで重複するデータを 抽出するのは「重複クエリ」でいいのでしょうか? それとも「重複クエリ」は一つのテーブルの中の重複するデータを 抽出するものなのでしょうか?

  • Access2010「クエリが複雑すぎます」

    お世話になります。 ユニオンクエリAがあり、そのクエリを使用してクエリB(テーブルや別のクエリとも紐付け)を作成しました。問題なく抽出できます。  <クエリB>  ユニオンクエリA ----→ クエリX              |               ---→ テーブル1              |               ---→ テーブル2              |               ---→ テーブル3 新たにユニオンクエリAを使って、クエリCを作成したところ「クエリが複雑すぎます」と表示されてしまいます。いくつかのテーブル/クエリと紐付けていたので、一つずつ取っていったところ、最終的にはユニオンクエリA一つでもエラーが出てしまいます。単純な選択クエリです。 クエリBは同じユニオンクエリAを使い、複数のクエリとテーブルとを紐付けているのにも関わらずエラーとなりません。。 どのようなことが考えられますでしょうか。 Accessを起動し直したり、端末自体も再起動しましたが状況変わらずでした。 また、ユニオンクエリA単体を開いても問題無く抽出されます。 ご教授の程、宜しくお願い致します。

  • access2007 クエリで抽出

    初心者です。クエリで抽出したのですが、一部のデータが抜け落ちます。抽出条件のフィールドはテキスト型で、元のテーブルでコピペで統一しましたが、同じデータが抜け落ちます。削除してやり直しても同様でした。重複クエリを作成するとこのフィールドが重複して出てきます。どこを直したらいいのか見当がつきません。よろしくお願いします。

  • Access処理を自動化するには?

    以下の状況で困っています。お知恵を拝借できれば幸いです。 宜しくお願いいたします。 <状況の作業> 1)システム甲より、特定のフォルダにCSVデータA,Bがエクスポートされる。 2)データAをテーブルAにインポートする。 3)データBをテーブルBにインポートする。 4)テーブルAにある重複をクエリでなくす。(クエリA) 5)クエリAとテーブルBからクエリを使用して最終データを作る。(クエリ最終版) 6)クエリ最終版をエクスポートして、CSVで保存する。(最終版.csv) 7)システム乙に「最終版.csv」をインポートする。 ※メモ   元のCSVがエクスポートされる場所はサーバ上です。   元のCSV名は、「YYYYMMDD_固定部分.csv」で名称が変動します。 <やりたい事> 上記の作業のうち、2)~6)を自動化したい。

  • ACCESS2007 クエリの抽出条件について教えてください

    ACCESS2007で、ルックアップ列(コンボボックス)を使用したテーブルがあります。そのテーブルをクエリにて、コンボボックスの条件別に抽出させたいのですが、その抽出条件を教えていただけませんでしょうか。 コンボボックスリストの中身(A,B,C)       A→Aのみ抽出したクエリ       B→Bのみ抽出したクエリ       C→Cのみ抽出したクエリ という風に作成したいのですが。 お忙しいところ申し訳ありません。よろしくお願いします。

専門家に質問してみよう