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

このQ&Aのポイント
  • Access重複クエリを用いて、日本語と英語が重複するレコードを抽出したい。
  • 判定が「o」または「x」のレコードに加えて、日本語と英語が重複するレコードを抽出したい。
  • 判定が「o」または「x」のレコードにおいて、日本語と英語が重複しないレコードを抽出したい。
回答を見る
  • ベストアンサー

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 以上ご教授の程よろしくお願いいたします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

#1です 訂正です。 以下の様なデータがあった場合は想定していませんでした。 ID 判定 日本語   英語 ・・・・ 11   o  テスト   tests 12   o  テスト   tests 1)での ORDER BY 日本語, ID は、ORDER BY 日本語, 英語, ID としてください。 2)での 日本語=Q2.日本語 の後に、 AND 英語=Q2.英語 を追加してください。 重複クエリを使った例になっていなかったので、 1)は、 SELECT Q1.ID, Q1.判定, Q1.日本語, Q1.英語 FROM TE AS Q1 INNER JOIN (SELECT 日本語, 英語 FROM TE GROUP BY 日本語, 英語 HAVING Count(*)>1) AS Q2 ON (Q1.日本語=Q2.日本語) AND (Q1.英語=Q2.英語) ORDER BY Q1.日本語, Q1.英語, Q1.ID; 2)は、1)を「Q_TE_1」名で保存したとして(#1と変わりありませんが) SELECT ID, 判定, 日本語, 英語 FROM Q_TE_1 AS Q3 WHERE EXISTS (SELECT 1 FROM Q_TE_1 WHERE 判定<>Q3.判定 AND 日本語=Q3.日本語 AND 英語=Q3.英語); なお、これらは更新できない表示となります。 #1は、更新可能です。

candle1
質問者

お礼

ありがとうございます。 無事できるようになりました。 重ねてお礼申し上げます。

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

提示された元のテーブル名を「TE」と仮定します。 1)以下をクエリのSQLビューに記述します。 SELECT ID, 判定, 日本語, 英語 FROM TE AS Q1 WHERE EXISTS (SELECT 1 FROM TE WHERE ID<>Q1.ID AND 日本語=Q1.日本語 AND 英語=Q1.英語) ORDER BY 日本語, ID; 2)1)のクエリを 「Q_TE」名で保存したとします。 SELECT ID, 判定, 日本語, 英語 FROM Q_TE AS Q2 WHERE EXISTS (SELECT 1 FROM Q_TE WHERE 判定<>Q2.判定 AND 日本語=Q2.日本語); ※ データ量が多くなった場合の処理性能について、わかりません。

関連するQ&A

  • Access 重複しないクエリの選択

    二つのクエリ上で重複しないクエリを抽出したいのですが、どのように設定すればいいのでしょうか? ex) クエリ1 ID -------------- 100 101 102 103 クエリ2 ID ----------- 100 102 103 のとき、クエリ1とクエリ2から ID 101を抽出したい

  • access クエリ 重複について

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

  • Accessのクエリ

    すみませんが教えて下さい。 Accessのクエリで、重複したレコードがある場合 例) ID  生年月日  区分1 001 1977/01/23 22 001 1977/01/23 22 002 1985/02/05 23 002 1985/02/05 23 * * * * * 結果を 001 1977/01/23 22 002 1985/02/05 23 だけの表示したいのですがどのような方法がありますか。

  • 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 どのような、関数、クエリーを使えば実現できるのでしょ うか。ご教示の程よろしくお願いします。

  • ACCESS2000の重複クエリ

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

  • Accessクエリ

    お世話になります。 Access初学者です。 グループごとに日付が最大のレコードを、それぞれ1件抽出するクエリを作成したいと思っています。 IDを表示させなければできるのですが、IDを表示させると全レコードが抽出されます。どのようにすればいいのでしょうか? よろしくお願いします。

  • Accessでクエリに規則性の無い重複データが

    Accessに二つのテーブルを作りました。 Tユーザー情報 ・ユーザーID ・郵便番号 ・性別 T都道府県 ・都道府県名 ・郵便 Tユーザー情報には都道府県のデータがないため、 T都道府県とひもづけたいのです。 続いてクエリを作成しました。 ・ユーザーID(Tユーザー情報) ・性別(Tユーザー情報) ・郵便番号(Tユーザー情報)→リレーションシップ:郵便(T都道府県) ※結合プロパティで「両方のテーブルの結合フィールドが同じ行だけを含める。」 ※無効な〒番号のユーザーは省きたいため ・都道府県(T都道府県) 結果、Tユーザー情報の件数よりも、クエリのレコードの件数が多くなってしまいました。 ユーザーIDを見ると、全く同じレコードが数行混ざっていました。 重複レコードはそれぞれ件数が違い、規則性も見つかりません。 全体で10万件のうち8千件くらいの重複データができてしまいます。 googleで調べると、もともと重複データのあるレコードを削除する方法は あるようですが難しく、そもそも重複データを作らない方法が見つかりません。 クエリの作り方が間違っているのでしょうか… どうぞよろしくお願い致します。

  • ACCESS2003でクエリの質問です

    クエリを教えて下さい。 ACCESS2003でクエリを作成したいのですが テーブルに以下のようにデータが入っています。 ID   日付   項目あ 項目い 項目う 項目え 項目お 001 2009/08/27  A         B    C 001 2008/08/27  D    E         F    G 002 2009/08/27       H         I 002 2008/08/27  K    L         M 002 2007/08/27  K    L    O    M 同一IDで日付の新しいレコードを抽出するのですが、 もしNULLの項目があれば、日付の古いレコードから編集したいです。 結果としては以下のようなテーブルを作成したいです。 [002]の[項目お]の様に過去日付のものがNULLであれば編集はしません。 ID   日付   項目あ 項目い 項目う 項目え 項目お 001 2009/08/27  A    E    B    C    G 002 2009/08/27  K    H    O    I また以下のように過去日付のデータが異なる場合は 事前のチェックでエラーとして別テーブルに出すように考えていますが、 こちらも合わせて教えていただけると助かります。 ID   日付   項目あ 項目い 項目う 項目え 項目お 003 2009/08/27  N    O    P         Q 003 2009/08/27  N    O    P    R    Q 003 2009/08/27  N    O    P    S    Q SQLが苦手で困っています。 宜しくお願いします。

  • Access2000で重複データに・・・

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

  • Access集計クエリについて

    Access集計クエリについて質問です。 (例) [フィールド名] りんご バナナ オレンジ りんご りんご バナナ ↓ <抽出条件> [フィールド名]   集計:[フィールド名] グループ化     カウント とすると、 ↓ <抽出結果> [フィールド名]   集計 りんご        3 バナナ        2 オレンジ       1 となります。 上記抽出結果を基に、集計カウント数が「3」の場合はOK、それ以外はNGというフィールドを追加したいのですが、その時の抽出条件はどうすればいいのでしょうか? <抽出結果> [フィールド名]   集計   判定 りんご        3     OK バナナ        2     NG オレンジ       1     NG Access初心者です。 どうぞよろしくお願いいたします。