• ベストアンサー

重複データについて

accessで重複しているデータを抽出したいのですが、初心者のためよくわかりません。 1列目 2列目 A   2  A   3 B   4 C   5 C   5 C   5 というデータがあった場合、1列目は重複していて2列目は重複していないデータだけを抽出したい場合、どういうクエリにすればいいでしょうか? 重複クエリではこの場合、Cも出力されてしまうためどうしたらいいのか悩んでおります。 よろしくお願いいたします。

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

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

> 1列目は重複していて2列目は重複していないデータだけを抽出 これはどのような状況(結果)を期待していますか。 1列目 2列目 A   2  A   3 B   4 C   5 C   5 C   5 では、 1列目 2列目 A   2  A   3 を期待していますか? > 2列目は重複していない の範囲は? 重複のあった1列目内でのこと? 1列目に関係なく? 1列目 2列目 A   2  A   3 A   3 B   4 C   4 C   5 C   5 で、 1列目 2列目 A   2  C   4 を期待しているのなら テーブル名を「T_1」、フィールド名を「列1」「列2」と仮定します。 SELECT T_1.列1, T_1.列2 FROM T_1 WHERE (SELECT Count(*) FROM T_1 AS TA1 WHERE TA1.列1 = T_1.列1) > 1 AND (SELECT Count(*) FROM T_1 AS TA2 WHERE TA2.列1 = T_1.列1 AND TA2.列2 = T_1.列2) = 1; とか SELECT T_1.列1, T_1.列2 FROM T_1 WHERE T_1.列1 IN (SELECT 列1 FROM T_1 GROUP BY 列1 HAVING Count(*) > 1) AND T_1.列2 IN (SELECT 列2 FROM T_1 AS TA2 WHERE TA2.列1 = T_1.列1 GROUP BY 列2 HAVING Count(*) = 1); とか SELECT T_1.列1, T_1.列2 FROM (T_1 INNER JOIN (SELECT 列1 FROM T_1 GROUP BY 列1 HAVING Count(*) > 1) AS TA1 ON TA1.列1=T_1.列1) INNER JOIN (SELECT 列1, 列2 FROM T_1 GROUP BY 列1, 列2 HAVING Count(*) = 1) AS TA2 ON TA2.列1=T_1.列1 AND TA2.列2=T_1.列2; とか 1列目 2列目 A   2  A   3 A   3 B   4 C   4 C   5 C   5 で、 1列目 2列目 A   2  を期待しているのなら SELECT T_1.列1, T_1.列2 FROM T_1 WHERE (SELECT Count(*) FROM T_1 AS TA1 WHERE TA1.列1 = T_1.列1) > 1 AND (SELECT Count(*) FROM T_1 AS TA2 WHERE TA2.列2 = T_1.列2) = 1; とか SELECT T_1.列1, T_1.列2 FROM T_1 WHERE T_1.列1 IN (SELECT 列1 FROM T_1 GROUP BY 列1 HAVING Count(*) > 1) AND T_1.列2 IN (SELECT 列2 FROM T_1 GROUP BY 列2 HAVING Count(*) = 1); とか SELECT T_1.列1, T_1.列2 FROM (T_1 INNER JOIN (SELECT 列1 FROM T_1 GROUP BY 列1 HAVING Count(*) > 1) AS TA1 ON TA1.列1=T_1.列1) INNER JOIN (SELECT 列2 FROM T_1 GROUP BY 列2 HAVING Count(*) = 1) AS TA2 ON TA2.列2=T_1.列2; とか で、どうでしょうか。

その他の回答 (3)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

Q抽出は名前の重複したものからデータの重複したものを 取り除いた、というのがこのクエリの"あらすじ"です。 エラーは出ないと思いますが、出たらまた質問を。 集合論的にはおもしろい質問でした。 では。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

なかなか手強い質問ですが、一応まとめてみました。 データが格納されているテーブルをtblTとします。 テーブルにはID(主キー、オートナンバー)、 名前(テキスト型)、データ(数値型)のフィールド とします。名前にはA,A,B,C,C,C,D,D,E・・・など が入っています。データには2,,3,4,5,5,5,6,7,7・・ などがそれぞれ入っているとします。 クエリを三つ作ります。 Qデータの重複 SELECT tblT.名前, tblT.データ FROM tblT WHERE (((tblT.データ) In (SELECT [データ] FROM [tblT] As Tmp GROUP BY [データ] HAVING Count(*)>1 ))) ORDER BY tblT.データ; Q名前の重複 SELECT First(tblT.名前) AS 名前, Count(tblT.名前) AS 名前の重複個数 FROM tblT GROUP BY tblT.名前 HAVING (((Count(tblT.名前))>1)); Q抽出 SELECT DISTINCT Q名前の重複.名前 FROM Q名前の重複 WHERE (((Exists (SELECT * FROM Qデータの重複 WHERE Q名前の重複.名前= Qデータの重複.名前))=False)); これらのテーブル、クエリを設定したらQ抽出を実行 してください。望みの結果がえられると思います。

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

ABC 単位 A 2 A 3 B 4 C 5 C 5 C 5 で あるならば 以下のクエリを実行してください SELECT DISTINCT ABC,単位 from TEST 参考:  ■重複データの表示、非表示を切り替える - ALL句 、DISTINCT句 : SQL入門講座 http://www.accessclub.jp/sql/18.html ※ 質問する前に Google などで検索してください。   同じ質問がある場合が多いです。

参考URL:
http://www.accessclub.jp/sql/18.html

関連するQ&A

  • 「エクセル」で重複したデータだけを呼び出したい。

    「Excel2000」を使用しています。 「重複しているデータだけ抽出する」 ということは出来るでしょうか? たとえば「A列」に名前が入っていて、 「B列」に住所、「C列」に電話番号が 入っているとします。 重複した名前だけを呼び出して、 なおかつ「B列」「C列」の データも表示させたいのですが…。

  • 重複データの抽出

    重複した数字のデータを抽出してまとめたいのですが教えていただけないでしょうか? 例えば A列    B列   1245     1365     1245 1398 1365 1155 1245 この表を      A列    B列   1245    1245 1365    1365 1245    1398 1398    1155 1365 1155 1245 のようにまとめたい A列の重複したデータを抽出しB列にまとめたいのですが、なるべく関数でやりたいのですが、良い方法をお願いいたします。

  • 重複するデータの抽出について(エクセル)

    エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば   A列   B列   C列    D列    E列・・・ 1  色  1回目  2回目  3回目   4回目 2  赤   あ    a      A       0 3  白   い    b      B       1 4  黄   う    c      C       2 5  黄   え    d      D       3 6  黒   お    e      E       4 7  赤   か    f      F       5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

  • ACCESSのフィールドのデータを無重複に抽出する

    お世話になります。 ACCESS2000を使用しています初心者です。 あるフィールドに入力されているデータを無重複に抽出したいのですが、簡単で良い方法を教えて下さい。 エクセルでの無重複抽出はできるのですが、データ数が34万件くらいあり、推測される結果は2万件くらいになります。 例) 商品 A B C A B D C 結果 A B C D よろしくお願いします。

  • EXCELの重複データの抽出について

    1月と2月という2つのシートがあり、それぞれA列に姓、B列に名、C列にメールアドレスが入力されています。 1月と2月を比べてABC列のデータが全く同じものだけを、1月重複分、2月重複分として抽出することが、ExcelまたはAccessでうまくできないため、どなたか教えてください。

  • 重複しないデータのみを抽出

    初めまして。 初心者なりに頑張ってみたのですがうまくいかず、 エクセルかアクセスにて、下記内容を処理出来ないものか 質問させて頂きました。何卒宜しく御願い致します。 2つのデータを併せて、重複しないデータのみを抽出したいのです e.g. データ1=(a,b,c,d) データ2=(b,b,c,d,e) 求めている結果=(a,b,e) となります。 現状、手作業にてチェックしているので、 非常に時間がかかってしまい困っております。 何卒、宜しくお願いします。

  • エクセルの重複データを抽出し、最新のデータを残した

    エクセルの重複データを抽出し、最新のデータを残したいです。 A列 B列 1 aaa@aaaa.co.jp 2014/1/1 2 bbb@aaaa.co.jp 2013/1/2 3 aaa@aaaa.co.jp 2014/1/10 4 aaa@aaaa.co.jp 2014/10/10 A列にアドレス、B列に日付が入っているデータがあります。 (他にC列などにも顧客情報が入っています。) アドレスの重複データを抽出し、最新の日付の行が残るようにしたいです。 この場合ですと2と4が残るようにしたいです。 膨大なデータの為、困っています。 良い方法をご存知の方、よろしくお願い致します。

  • 重複するデータの削除と抽出方法

    はじめまして。 区分   ランク 001  A 002  B 002  B 003  C 004  D 005  E 005  F このようなデータを以下の条件で削除し抽出する方法を教えていただけないでしょうか。 ・区分が重複しているデータを削除したい。 ・しかし区分が重複していてもランクが異なる場合は削除しない。    ↓ 001  A 002  B 003  C 004  D 005  E 005  F エクセルとアクセス両方での方法を教えていただければ有難いのですが・・・(エクセル、アクセスとも初心者です) わかりにくい質問ですがよろしくお願い致します。

  • エクセルでA列B列C列の重複するレコードのみを表示

    エクセルのA列とB列とC列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列とB列とC列にそれぞれ1000行くらいのデータがあります。 それぞれの列内には重複レコードがあります。 この条件の中で 「A列とB列とC列に重複するデータすべて」 を抽出したいのですが、どんな方法がありますか。 抽出されたデータで重複レコードの場合は1件のみで表示したいです。 よろしくお願いします。 例   A   B   C   抽出  1-001-002--002--002 2-002-002--005--007 3-003-007--007--008 4-007-008--008--011 5-008-008--010 6-008-010--011 7-011-011--012 8-013-014--013

  • アクセス重複データ

    今アクセスのクエリで重複したデータを1つ残してあとは表示させないものを作成したいのですが、クエリの「抽出条件」に何をいれたらいいでしょうか。 よろしくお願いします。

専門家に質問してみよう