• ベストアンサー

Access 重複している件を抜き出す

650件ちょいのデータがあるんですが、 同じデータを抜き出したいです。 グループ化とは逆になるんでしょうか。 ORDER BY してから Loop  前行と同じなら別テーブルにINSERT Next しか思いつかないんですが、 もっと簡単に出来ないものでしょうか?

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

  • ベストアンサー
noname#60992
noname#60992
回答No.1

グループ化して、 件数をカウントして 件数が2件以上のものを表示させる。   SELECT T1.F1, T1.F2, Count(T1.F1) AS F1のカウント FROM T1 GROUP BY T1.F1, T1.F1 HAVING Count(T1.F1)>1; というような感じ。 その後どうするかは質問からは読み取れませんが、別テーブルに入れるなり、その分を消すなり、、、

-Jelly-
質問者

お礼

実際のデータはこれ*3が1セットでそれが2セットあります。 それをぽちぽち登録していくんですが、 同じ作業が延々と続きいい加減薄れ行く意識の中、 渡された表に同じデータが入っていることに気付きました。 (ほんとは重複があったらイカンものなのです) それで、渡してきた人間に殺意を抱きつつ データを衝動的にAccessへとエクスポートしてみました。 >その後どうするかは質問からは読み取れませんが もちろん重複箇所を印刷して、 ・すでにやっちまったものをどうするのか ・他にも重複がないか(これ1つにあったなら多分他にもある) をお伺いします。 サラっとやり直しておいてと言われるでしょう。 >別テーブルに入れるなり、その分を消すなり、、、 印刷したいだけなら別にINSERTまでしなくて良い気がしてきました。 教えていただいた方法で重複箇所が分かったので それでテーブル全体から全項目を引っ張ってこようかと思います。 ありがとうございました・・。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

同じデータというのは全てが同じデータでしょうか? それとも何かの項目が同じデータでしょうか? 何かの項目なら以下のSQL実行したら取得できると思います。 と、Oracleで実行したんで何ともいえませんが・・・。 例)姓名が同じ人のデータを取得 SELECT * FROM M_USER WHERE (SEI, NAME) IN (SELECT SEI ,NAME FROM M_USER GROUP BY SEI ,NAME HAVING COUNT(*) > 1) そして、効率は悪いかもです。。。

-Jelly-
質問者

お礼

メインクエリのFROM句の予約語Existsを使用しないフィールドを 複数返すサブクエリを作成しました。 サブクエリのSelectステートメントを変更し、 1つのフィールドだけを指定してください。 テーブル中のとある幾つかの項目が同じ件を抜き出したかったです。 これはOracleでやれってことでしょうか(笑 確かにオブジェクトブラウザーとかだとSQLべた書き出来て楽なんですけど いかんせお手軽コンパクトローカル完結なAccess歴が長いもので Oracleをひょいひょい起動する気にならんのです==; (ってかまだ使い慣れてないだけか) SQL文だけ見た感じ、これで出来たら楽そうですね。 まだまだ勉強不足です。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A