• ベストアンサー

アクセス:レコード中の重複あたいを削除する方法

100件のレコードがあります。フィールドAに4桁の一意なデータが入っています。フィールドBにはフィールドAの頭から3桁を抜き出したデータが入っています。 Aは一意でもBはそうではなくなる場合があり重複が発生します。この重複のデータのみを削除する方法を教えていただけないでしょうか。 フィールドA、 フィールドB ABC1、ABC ABC2、ABC ABD1、ABD ABD2、ABD どれぞれ二つ目のABCとABDを削除し、下記のようにしたい。 フィールドA、 フィールドB ABC1、ABC ABC2、 ABD1、ABD ABD2、

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

  • ベストアンサー
  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.2

No.1です。 思いつく方法としては、当該テーブルをAとします。 テーブルAをグループ化し、フィールド1を「最小」にしてテーブル作成クエリでテーブルBを作成します。 テーブルBの内容は、  フィールドA フィールドB  ABC1    ABC  ABD1    ABD となります。 ※要するにフィールドBの1種類に対して、フィールドAも1種類だけとしたもの。よって、「最小」ではなく「最大」でもよいかと思います。 で、次にテーブルA全件に対して、テーブルBを紐付けます(フィールドAで)。 また、抽出条件としてテーブルBのフィールドA(最小)をNullとしします。 これで、テーブルBのABC1及びABD1以外のレコードが抽出されると思います。 このクエリを更新クエリにして、テーブルAのフィールドBをNullにするように して実行します。 そうすると、 フィールドA、 フィールドB ABC1、ABC ABC2、 ABD1、ABD ABD2、 になるかと思います。

ticktak
質問者

お礼

やりました! できました。大変ありがとうございます。

ticktak
質問者

補足

グッドアイデアだと思います。早速やってみます。後程報告します。 ありがとうございます。

その他の回答 (1)

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.1

例だけみると、  UPDATE テーブル1 SET [テーブル1].[フィールドB] = Null  WHERE ((([テーブル1].[フィールドA]) Like "AB*2")); でいけると思うのですが、こんな単純な話ではないんですよね?

ticktak
質問者

補足

そうですね。これだと例文の分しか対応できないです。いろんなパターンがありますので・・・ ありがとうございます。

関連するQ&A

  • ACCESSでの重複レコードの削除

    ACCESSで、重複レコードを引っ張ってくるのは、重複クエリでやれましたが、逆に、重複レコード(1つのフィールド、或いは複数のフィールドに着目しての)の削除は、やれないのでしょうか? イメージしているのは、エクセルのオートフィルタでの「重複データの削除」です。 よろしくお願い致します。

  • ACCESS 重複データ削除の順番について

    追加クエリを使って重複データを削除する時に、削除されるデータについて質問です。 重複レコードを含むテーブルの構造のコピーを作成し、重複レコードを含むすべてのフィールドの主キーを作成して、元のテーブルから新しいテーブルへの追加クエリを実行して、重複レコードを一括削除をしています。 [操作についての参考URL] http://support.microsoft.com/kb/879852/ja =========================================== (テーブル) [ID]  [クラス]  [名前]   [時間]     1     A     ああ   11:00 ←重複 2     B     鈴木   12:00    3     C     アア   13:00     ←重複  4     A     ああ   14:00 ←重複 5     B     森    15:00   6     C     アア   16:00     ←重複  7     B     青山   17:00   8     C     アア   18:00     ←重複     9     A     ああ   19:00 ←重複 =========================================== 上記のようなテーブルで「クラス」と「名前」の2つのフィールドを主キーにした場合、 「A」の「ああ」さんと、「C」の「アア」さんが各3件ずつ重複しています。 しかし、「ID」と「時間」はそれぞれ違っています。 このような場合に、削除されないデータと削除されるデータの違いは何なのでしょうか? ACCESSの仕様でとか、レコードの若い番号順で削除されるとか、明確なルールが あれば教えていただけると幸いでございます。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • 重複しているレコードを一気に削除する方法

    重複しているレコードを一気に削除する方法はありますか? 主キー  フィールド1 フィールド2 1     あ     い 2     あ     い のように、主キー以外は重複していえるのですが この場合、1か2を削除する方法はありますか? 一つのテーブルに主キー以外の値が重複しているレコードが多々あるので一気に削除したいです。

  • 2つの項目が重複するレコードを抽出する方法はありますか?

    MySQL4.1で既存データに対し複合キーを新しく設定したいのですが、 ALTER TABLE `test` ADD PRIMARY KEY (`a`,`b`) としても重複データが存在する為、作成できませんでした。 10万件あるテーブルから重複するレコードを手動で削除したいのですが、aとbが重複しているレコードだけ抽出するSQL文はありますでしょうか?

    • ベストアンサー
    • MySQL
  • ACCESSで重複するレコードは無視する

    ACCESSで複数のフィールドで重複するレコードを1個だけにする方法教えていただけませんか。エクセルのフィルターオプションのように複数のセルを選び、重複するレコードを無視する方法です。 フィールド名1、フィールド名2、フィールド名3があり、1にはたとえば県名、2には市町村名、3には学校名があり、これを重複を除き1レコードにしたい。削除はできるのですが、レコードを1個にするのが出来なくて弱っています。ACCESS2003です。

  • Accessで重複したデータを削除したい。

    AテーブルとBテーブルがあります。AテーブルとBテーブルのフィールド名は同じですがデータはそれぞれ違います。AテーブルとBテーブルにあるデータを一つにまとめたいのですが、その際に、 「AテーブルとBテーブルの間で重複したデータがあるのでそれを削除したい。」のですが、手順としてどのような方法がスマートなのでしょうか。 (1)BテーブルをAテーブルに追加クエリで追加する。 (2)Aテーブルで重複クエリを作成し、重複しているデータを表示する。 ・・・・とここまで考えたのですが重複しているデータをどのように削除していけばいいかわかりません・・・。根本的にやり方が間違っているのでしょうか。どなたか詳しい方、いい方法を教えてください。よろしくお願い致します。

  • excelの重複データの削除方法。

    excel2003で重複する値を自動的に削除する方法を探しています。 現在、以下のような手順で作業をしています。     A   B   C 1 ○○○ 100 ABC 2 ▼▼▼ 200 DEF 3 ◇◇◇ 300 GHI 4 ■■■ 400 JKL 5 △△△ 500 MNO ↑の元データに      A   B   C 1 ○○● 100 ABC 2 ◇◆◇ 300 GHI ↑のデータを追加(貼り付け)して並び替えをすると      A   B   C 1 ○○○ 100 ABC 2 ○○● 100 ABC 3 ▼▼▼ 200 DEF 4 ◇◇◇ 300 GHI 5 ◇◆◇ 300 GHI 6 ■■■ 400 JKL 7 △△△ 500 MNO というデータが出来るとします。 「C列の値を基準」として、重複している箇所を検出・削除し (上の例で言えば、1・2・4・5の行。)      A   B   C 1 ▼▼▼ 200 DEF 2 ■■■ 400 JKL 3 △△△ 500 MNO というデータにしたいと考えております。 重複した値のどちらか一方を残す、という方法ではなく、 重複した値の全てを削除する、という方法が解りません。 手作業で1つ1つ削除していけばいいのですが、本物のデータは何千件とあるので 手作業では時間が掛かりすぎてしまいますので…。なにかよい方法はないでしょうか? 簡単な方法であれば大変助かりますが、マクロなどを使用する方法でもかまいませんのでご教授下さい。 よろしくお願い致します。

  • アクセス クエリについて2点お教え下さい。

    A(1000件)とB(500件)の2つのテーブルがあります。 この2つをキーでつなぎ、Aの全てのデータを表示し、 2つの一致したデータのみにBの●・△・■のフィールドを追加したい。 【質問1】 2つを繋ぐ完全一致のキーがありませんので まずは電話番号で確認し、その後住所、その後名前と・・・ 最終的にはこの3つの内ひとつでも一致したものにBのフィールドを 追加したいのですが、どのようにするのがベストでしょうか? 【質問2】 ABのテーブルどちらにも重複したデータが含まれている場合 2つを繋ぎ“Aの全てのレコードとBの同じ結合フィールドのレコードだけを含める” にチェックを入れてもAの1000件を超えて表示されます。 通常、“Aの全てのレコードとBの同じ結合フィールドのレコードだけ”なので 表示されるレコードは1000件ですよね? 重複データを削除する以外に1000件で表示する方法はないのでしょうか? よろしくお願い致します。

  • ファイルメーカー10で重複データを削除したい

    ファイルメーカー10で重複データを削除したく(1)~(6)まで行い、(3)の計算結果の「データ削除」表示レコードを抽出して削除したいのですが、(3)の計算結果を保存できないため対象のレコードが削除できません。何かよい方法がありましたらよろしくお願いします。 (1)自己連結リレーションシップでフィールドAを連結 (2)計算項目のフィールド作成 Count (テーブル2::フィールドA)を作成 (3)計算項目のフィールド作成 If (フィールドA ≠ GetNthRecord (フィールドA ; Get (レコード番号)-1);"ok";"データ削除") (4) (2)の結果が2以上を抽出 (5) (4)の抽出後、フィールドAで重複データのソートを行う。 (6) 削除したいレコードに(3)の計算結果として "データ削除" は表示されます。   このあと、なんとも分かりません。そもそもこの方法では無理なのでしょうか?

  • アクセスの重複レコード探し

    アクセスのデーブルでフィールド「品名」に重複レコードが混じっており、これを重複データなしの設定に直そうと思っているのですがレコードが多く、なかなかつぶせません。 簡単な、見つけ方を教えて下さい。 #ちなみに「重複クエリウイザード」は、次週まで使えません。それなしの方法・・ (^^;

専門家に質問してみよう