• ベストアンサー

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