過去の桐井戸端BBS (桐ver.8)
4343 OR検索の方法 郷司 2000/1/28-21:11
次のような条件で、OR検索をしたいのですがどんな方法がありますか?

1.14〜16個くらいの条件でORを取りたい
2.それぞれの条件は部分一致検索としたい
   (文字列変数で *"ABC"* などと)

一括処理で検索条件登録では最大10個の条件なので
うまくいかなかったです。

併合処理では、完全一致のみで、部分一致が効かなかったような..

 過去BBSのを一応探してみましたが、見落としあったかも..?

4345 Re:OR検索の方法 宮城 2000/1/28-21:58
記事番号4343へのコメント
郷司さん、こんにちは。

>一括処理で検索条件登録では最大10個の条件なので
>うまくいかなかったです。

2回に分けて実施すればいかがですか。

1回目の絞り込み・条件名→書き出し→補集合→2回目の絞り込み・条件名
→書き出し・追加

1回目の絞り込み・条件名→書き出し→絞り込み解除 1→
2回目の絞り込み・条件名書き出し・追加→書き出し表単一化

のいずれか。あくまで、元表で絞り込みたいでしょうから、書き出し項目は
レコードの最小ユニークキーだけでOKで、最後に元表を選択解除を全段かけ
といて、書き出し表により、併合・絞り込みをかけます。

ワークファイルとかよくいいますけど、こんな感じで中間的な表を使うと、
楽にいろいろなことができますよ。

4351 Re:OR検索の方法 佐田 守弘 2000/1/28-22:24
記事番号4343へのコメント
郷司さん
これは一括処理やイベントなどを使えば可能です。
まず表の上にはフラグの項目として、例えば[選択]といった項目を作っておき
ます。
そして始めにこの[選択]の値を0にしておきます。
次に検索条件1つずつについて絞り込みを行い、絞り込み結果のレコードの[
選択]の項目値を1に置換します。ついで、絞り込みを解除します。
全条件についてこれを繰り返します。
この繰り返しが終わったら、最後に、[選択]の項目が1のレコードについて絞
り込みを行えば、目的を達します。

付け加えれば、検索値を別の表に持っておくのが良いでしょう。この場合、そ
の検索値の表を会話処理で入力させます。そして検索値の入力が終わったら、
先頭レコードから最終行まで繰り返す条件で、上記の絞り込みと[選択]の項目
値の置換を行います。

> 過去BBSのを一応探してみましたが、見落としあったかも..?

過去BBSは見ておりませんが、この手法は私が執筆した雑誌記事や単行本など
に多数掲載してあるはずです。

佐田守弘(KS-00119)

4357 Re:OR検索の方法 郷司 2000/1/29-09:24
記事番号4351へのコメント
宮城さん、佐田守弘さん。 ありがとうございます。

1回がだめなら、2回に分けてやればいいんですよね。
簡単なことでしたが、私にとっては事が捗りました。

ありがとうございました。またよろしくお願いします。

戻る