過去の桐井戸端BBS (桐ver.9) |
25340 | 併合で照合一致するレコードが複数あるときはどうすればいいのでしょうか | Toppo | 2004/03/09-22:32 |
いつもお世話になります。 併合で照合一致するレコードが複数あると、最初に出てくるレコードだけが 併合されることになりますが、こんな場合皆さんはどうしていますか? 1行ずつ絞り込んで併合を繰り返すのがいいのか、単一化絞り込みをして補集合でまた単一化して・・・・ (この場合何回単一化をしたのかを知る方法があるのか) ほかにもいい方法があるのでしょうか? どうかよろしくお願いいたします。 | |||
25346 | Re:照合一致するレコードが複数ある併合について | masa | 2004/03/09-23:18 |
記事番号25340へのコメント Toppoさん 今晩は >併合で照合一致するレコードが複数あると、最初に出てくるレコードだけが >併合されることになりますが、こんな場合皆さんはどうしていますか? 照合一致するもの全て変更になるのじゃないでしょうか? 照合項目がたくさんある場合という意味でしょうか? (これもそれぞれの項目を照合させれますけど・・・) | |||
25353 | Re:照合一致するレコードが複数ある併合について | 佐田 守弘 | 2004/03/10-01:05 |
記事番号25340へのコメント Toppoさん これについては、 masaさんが書かれている通りだと思います。 >併合で照合一致するレコードが複数あると、 とは、併合元の表の意味か、併合先(併合される方)の表の事をいっているのかがはっきりしませんが、 いずれにしても対象となるレコードは全て併合されるはずです。総でないと併合の意味がありません。 ●併合の仕組み 参考までに併合はどの様に行われるのか?を述べておきます。 (今まで何回か書いた事があるので、過去ログにも残っているはずです。) 併合では、併合元の表の先頭レコードから初めて、照合項目に指定された項目値を取り出し、 併合先の表の中から、合致するレコードを検索して行きます。 そして検索されたレコードがあれば、そのレコードに対して、複写等の併合操作を指定した項目に対して、 併合元から併合先へその操作を行います。 ここで併合先に重複禁止の索引があれば、1件検索されれば、 あとはもう該当するレコードがないので、そこで検索が終ります。 重複禁止でない場合には、併合先の表の最終行まで、検索と併合操作を繰り返します。 検索できなかった場合には、挿入が指定されている時には、併合元のレコードが併合先に挿入されます。 以上の操作を、併合元の表のレコードを順次移動しながら、繰り返します。 つまり、併合では総当たり的な検索と併合操作が行われます。 ですから、最初に見つかったレコードだけに対して併合操作が行われるのは 唯一、併合先の表で照合項目について重複禁止の索引が設定されていて、 該当するレコードは1件だけしか存在しない事が明確な場合だけです。 佐田守弘(KS-00119) | |||
25359 | Re:照合一致するレコードが複数ある併合について | Toppo | 2004/03/10-11:05 |
記事番号25353へのコメント masaさん 佐田先生 ありがとうございました。 ご指導いただいたので改めてよく確認しました。 私の設定が間違っていました。数量の併合なのに「加算」ではなく「複写」に していたので、最初のレコードではなく一致する最後のレコードを複写していました。 「加算」にするとバッチリ合計が合いました。 うっかりミスなのにお手をわずらわせてしまいました。 ありがとうございました。 |