C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 重複データ削除


(過去ログ 77 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■45533 / inTopicNo.1)  重複データ削除
  
□投稿者/ D.A (16回)-(2010/01/14(Thu) 14:48:13)

分類:[.NET 全般] 

質問させていただきます。

mdbファイルからSQLでレコードを取得、更新するアプリを開発中なのですが、mdb内に同じデータが登録されています。

SQLで重複したレコードの一方を削除できないでしょうか?

DISTINCTを使用してみましたが、表示上一つにするだけで削除はされないようでした。

よろしくお願い致します。
引用返信 編集キー/
■45534 / inTopicNo.2)  Re[1]: 重複データ削除
□投稿者/ 魔界の仮面弁士 (1449回)-(2010/01/14(Thu) 14:54:37)
No45533 (D.A さん) に返信
> mdbファイルからSQLでレコードを取得、更新するアプリを開発中なのですが、mdb内に同じデータが登録されています。
> SQLで重複したレコードの一方を削除できないでしょうか?
レコードを一意に特定するための「主キー」はありますか?
(無ければ、オートナンバー列で良いので、追加しておいてください)

> DISTINCTを使用してみましたが、表示上一つにするだけで削除はされないようでした。
もし、上記の主キーによって
  SELECT MIN(主キー), COL1, COL2, COL3 FROM TBL
  GROUP BY COL1, COL2 COL3
という取得ができるのであれば、ここで列挙された主キーに一致しないデータを
削除対象とするために、DELETE 〜 WHERE NOT EXISTS(…) を使えるかと思います。

引用返信 編集キー/
■45535 / inTopicNo.3)  Re[1]: 重複データ削除
□投稿者/ みきぬ (707回)-(2010/01/14(Thu) 14:58:10)
1. 元のテーブル(TableA とする)とその中身を、そっくり別のテーブル(TableB とする)にコピーする。
2. TableA の中身をばっさり消す。
3. TableB から Select Distinct した結果を、TableA に Insert する。

とか…。
引用返信 編集キー/
■45719 / inTopicNo.4)  Re[2]: 重複データ削除
□投稿者/ D.A (17回)-(2010/01/19(Tue) 10:59:17)
No45535 (みきぬ さん) に返信
> 1. 元のテーブル(TableA とする)とその中身を、そっくり別のテーブル(TableB とする)にコピーする。
> 2. TableA の中身をばっさり消す。
> 3. TableB から Select Distinct した結果を、TableA に Insert する。
>
> とか…。


ありがとうございます。

やはり一度手動でDBを作りなおすような作業が必要ということですね。
引用返信 編集キー/
■45795 / inTopicNo.5)  Re[1]: 重複データ削除
□投稿者/ 裕猫 (89回)-(2010/01/20(Wed) 08:59:35)
No45533 (D.A さん) に返信
> 質問させていただきます。
>
> mdbファイルからSQLでレコードを取得、更新するアプリを開発中なのですが、mdb内に同じデータが登録されています。
キーの重複ではなく内容が完全に一致していますか?ならば一度同じ構成のDBを作り内容が一致したものは移入しないようにプログラムして実行すればよいのではないですか?その後元に戻せば重複はなくなります。通常は一意のキーを作って重複しないようになっているはずですが、そこのところはどうなっているのでしょう?新たにDBに一意のキーをつけて管理することをお勧めします。

引用返信 編集キー/
■45796 / inTopicNo.6)  Re[2]: 重複データ削除
□投稿者/ 裕猫 (90回)-(2010/01/20(Wed) 09:01:04)
追記:数が少なければaccess起動して手動で削除すればよいのでは?
引用返信 編集キー/
■45813 / inTopicNo.7)  Re[3]: 重複データ削除
□投稿者/ D.A (21回)-(2010/01/20(Wed) 13:14:27)
No45796 (裕猫 さん) に返信
> 追記:数が少なければaccess起動して手動で削除すればよいのでは?

ありがとうございます。7000件近くありましたので、みきぬさんから頂いたやり方でやってみます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -