• ベストアンサー

重複クエリを使ったデータ削除

お尋ねします。 データをダブって入力してしまい、重複クエリを使ってダブったデータを抽出したのですが、ダブっているデータの片方だけを削除する方法がわかりません。 削除クエリにしてWhere条件式を書くのだろうと思いますがどう書けばいいのでしょうか? たとえば、日付、金額、入金(または出金)の3つのデータがダブっているクエリ抽出結果においては、各フィールドのWhere条件式にどう記述すればいいのでしょうか? 教えてください。

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

  • ベストアンサー
  • yuko6
  • ベストアンサー率19% (108/543)
回答No.3

No.2のものです。 >「重複クエリで抽出されたデータ」は重複しているレコードだけですよね。それで>テーブルを作っても重複しているレコードだけになるのではないのですか? >ダブっていない、という意味を教えてください。 説明不足の点がありましたね。 重複クエリーの表示には二通りあるかと思います。 1.重複データが上下に並んで表示されているもの  (特定の項目だけ重複チェックした場合) 2.最後のフィールドに重複データ数が表示されていて見かけ上は重複していないもの jetstreamさんの場合、データをダブって入力したということなので たぶん2.ではないかと思います。 (いや、1.だよと言う場合はそのクエリーをグループ化します。表示-集計) そのクエリーをコピーした後デザインで開き、クエリーを「テーブル作成クエリー」に 変え、実行(!ボタン)をクリックします。 作成したテーブルを見て下さい。重複していませんよね? それが確認できたら最初の重複クエリーで抽出したデータを 元のテーブルから削除します。 その後新しく作ったテーブルのデータを追加クエリーで投入します。 またわからなかったら聞いて下さい。 ※なかなかこういうのって文字だけじゃ伝わらないですよね・・ くれぐれも大事なデータだと思いますので コピーなどしてから試して下さいね。

その他の回答 (2)

  • yuko6
  • ベストアンサー率19% (108/543)
回答No.2

Accessだという前提ですが、すごく原始的な方法です。 条件式等の記述はいりません。クエリーだけでやります。 重複クエリーで抽出されたデータで一旦テーブルを作っちゃいます。 グループ化されているはずなので当然このテーブルの中はダブっていませんよね? 元のテーブルの重複データは全部削除しちゃいます。 その後先程作ったテーブルのデータを追加クエリーで追加します。 これではだめですか? 説明不足があれば言って下さい。

jetstream
質問者

補足

ありがとうございます。 そんな方法もあるんですね。 私、Access初心者なもんで、基本的なことをお聞きします。 「重複クエリで抽出されたデータ」は重複しているレコードだけですよね。それでテーブルを作っても重複しているレコードだけになるのではないのですか? ダブっていない、という意味を教えてください。

noname#4564
noname#4564
回答No.1

お使いのDBMSが何なのかわかりません(Jetですかね?)が、 WHERE句にサブクエリーを書けばよいのでは? 一例ですが、 WHERE Field Not In (SELECT DISTINCT ...... ) のような要領で。

jetstream
質問者

補足

回答いただきありがとうございます。 私はいまAccess2000でDBを作っています。 基本的な質問ですみません。 1)サブクエリってなんですか? 2)例の式は削除クエリのWhere句に書くのですか?   式の意味がよくわかりません。すこし解説を頂けませんか? よろしくおねがいします!

関連するQ&A