• ベストアンサー

access クエリ 重複について

2つのテーブルA,Bでクエリを作成するのですが、 テーブルA,Bを別々に条件Xによって抽出した場合、抽出されるレコード数は違います。 希望する抽出結果は、   テーブルAの条件Xによる抽出結果AXに   テーブルBの条件Xによる抽出結果BXを割り当てていき、   BXが足りなくなったら、以降は空白となる。 です。 前提としてレコード数は、必ずAX>BXです。 よろしくお願いします。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

主キーがIDだとすると、こんな感じで出来ると思います。 テーブルA(ID,Data) テーブルB(ID,Data) SELECT QA.Line, QA.DATA AS AX, QB.DATA AS BX FROM ( SELECT Count(N.ID) AS Line, A.ID, A.DATA FROM テーブルA AS A, テーブルA AS N WHERE N.ID<=A.ID AND A.DATA=条件X AND N.DATA=条件X GROUP BY A.ID, A.DATA ) AS QA LEFT JOIN ( SELECT Count(N.ID) AS Line, B.ID, B.DATA FROM テーブルB AS B, テーブルB AS N WHERE N.ID<=B.ID AND B.DATA=条件X AND N.DATA=条件X GROUP BY B.ID, B.DATA ) AS QB ON QA.Line = QB.Line; 主キーが無い場合はクエリでは難しいと思います。

PearlJam69
質問者

お礼

ありがとうございます! できました!! 実際にはフィールド数が多いので、 ご回答を参考に全部クエリを作成しました。(7個です) カウントを使い、抽出結果に番号を振り、 それをLEFT JOIN~ON~するという考え、ありがとうございました!

関連するQ&A

  • ACCESS クエリ 条件以外のレコードを抽出するには?

    クエリで、抽出条件(文字列)以外のレコードを全て抽出したいのですが、うまくいきません。 そのフィールドには空白もあり、 抽出条件を「Not In ("A","B")」とすると、 "A","B"以外の文字列が抽出され、空白のものは抽出されません。 「"A"や"B"でない、他の全てのレコードを抽出したい」という場合、どのようにすればよいのでしょうか?

  • Accessクエリの抽出条件

    Access2000を使用しています。 クエリの抽出条件にテーブルの値を使用したいのですが、その方法がわかりません。 テーブルAには、「日付」、「当者コード」 などの項目があります。 テーブルBの項目は「担当者コード」のみです。また、1レコードしか登録 されていません(2レコード以上になることはありません)。 そこで、テーブルAに対するデータ抽出条件を、テーブルBの「担当者」としたいのですが、 どのように記述すればよろしいでしょうか・・・? よろしくお願いします。

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

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

  • ACCESS2000の重複クエリ

    よろしく、お願いします。 ACCESS2000+Win2000で使用しています。 ACCESS2000の”テーブルA”の”フィールドa”の”重複クエリ甲”の結果としてX、Y、Zというデータが出たとします。 そのうち、XのみにテーブルAの”フィールドb(Yes/No型)”にフラグを立てたいのですが、良い方法はありませんか? 私は重複クエリ甲に、更新クエリで更新する事は出来ませんよね? 甲と同じく”重複クエリ乙”を作って、乙は”集計”で先頭のみを出して、甲と乙の”不一致クエリ”で差分を出してみたりもしたのですが、更新クエリを使えない為に、フラグを立てられません。 何か良い方法を教えてください。 お願い致します。

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

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

  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

  • Access重複クエリに関するご質問

    Access重複クエリを用いて、以下のような結果を出したいのですが 可能でしょうか? ご指導の程よろしくお願いいたします。 (例) <テーブル> ID 判定 日本語   英語 1   o   テスト   test 2 o    赤     red 3   x   油     apple 4   o    愛     love 5 x  りんご   apple 6   o  日本    Japan 7 o    テスト   test 8   o  りんご   apple 9   x   赤     blue 10   o  テスト   test <クエリ結果(1)> ・日本語重複、かつ、英語重複のレコードを、重複単位に並べ替えて抽出したい。 ※ID「3」の英語は重複しているが、日本語が重複していないので抽出しない。 ※ID「9」の日本語は重複しているが、英語が重複していないので抽出しない。 ID 判定 日本語   英語 1   o  テスト   test 7 o    テスト   test 10   o  テスト   test 5 x  りんご   apple 8   o  りんご   apple <クエリ結果(2)> ・クエリ結果(1)に加えて、判定が「o」、「x」どちらも含まれるレコードだけを抽出したい ※ID「1、7、10」は、判定がすべて「o」の為、抽出しない。 ID 判定 日本語   英語 5 x  りんご   apple 8   o  りんご   apple 以上ご教授の程よろしくお願いいたします。

  • ACCESS クエリで”1”でないものを選択するには?

    ACCESS2003で排他選択("1"でないものを選択) をしたいのですが あるフィールドに”1”かブランクが入っていて ”1”以外のものを選択したいのですが クエリのデザイン画面で ------------------------- フィールド テーブル 並べ替え 表示 抽出条件  <> "1" ------------------------- 抽出条件に = "1" を入れると、"1"のレコードのみ 選択できます やりたいのは "1"以外のものを選択したいのです そこで 抽出条件に<> "1"といれると レコードがゼロ件になります また、Not "1"とか <> "1"、とか、Not = "1" と入れてみても、抽出結果はゼロ件になります 原因を教えてください

  • Accessの削除クエリで「クエリが複雑すぎて実行できません」

    困っています。どなたかご存知の方がいらっしゃいましたらお願いしますm_ _m (1)Aクエリ(選択クエリ)とBテーブルを削除クエリでつなぐ(結合プロパティはAクエリ全件から→B) (2) (1)の削除クエリは、 B全件から(From B*) Bのフィールド40列ぐらい(数値列)を落とし、 (Where 条件「0」←数値ゼロをいれる) (3)削除クエリを実行すると、「複雑すぎて実行できません。」というエラーメッセージがでてきて実行できません。何か駄目なのでしょうか? やりたいことは、 Bテーブルを、 Aクエリにあるレコードは抽出し、のちフィールドの値が0のものは削除したいのです。 よろしくお願いします。

  • Accessのクエリでレコード追加

    Access初心者です。 バージョンは2010をつかっています。 テーブルを14テーブル含み、フィールド数が100ほどある選択クエリを作りました。 抽出条件などは設定していません。 このクエリで新しくデータを入力、レコードを追加し、上書き保存した後クエリを閉じます。 それからまた、そのクエリを開くとレコードが追加されていません。 テーブルにはその入力したデータは追加されています。 このクエリにもそのデータを追加表示させるためにはどうすればいいですか? 表示されない原因はなんなのかお教えお願いします。

専門家に質問してみよう