- ベストアンサー
access クエリ 重複について
2つのテーブルA,Bでクエリを作成するのですが、 テーブルA,Bを別々に条件Xによって抽出した場合、抽出されるレコード数は違います。 希望する抽出結果は、 テーブルAの条件Xによる抽出結果AXに テーブルBの条件Xによる抽出結果BXを割り当てていき、 BXが足りなくなったら、以降は空白となる。 です。 前提としてレコード数は、必ずAX>BXです。 よろしくお願いします。
- みんなの回答 (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; 主キーが無い場合はクエリでは難しいと思います。
お礼
ありがとうございます! できました!! 実際にはフィールド数が多いので、 ご回答を参考に全部クエリを作成しました。(7個です) カウントを使い、抽出結果に番号を振り、 それをLEFT JOIN~ON~するという考え、ありがとうございました!