アプリ版:「スタンプのみでお礼する」機能のリリースについて

ACCESSの初心者です。
下記データ形式で、条件抽出を行いたいです。
【テーブル1】
【抽出条件テーブル】
【抽出結果テーブル】

・抽出条件は、完全一致抽出でなく”含む”でやりたいです・(例:)*老人福祉施設*
・そして、抽出結果には、重複行が出ないよう、重複削除がされていて欲しいです。
・【抽出条件テーブル】の内容を更新されたら、容易に、新たな結果を取得できるような仕組みにしておきたいです。



【テーブル1】
会社名業種住所

*****慶和園特別養護老人ホーム,老人福祉施設北海道虻田郡京極町字更進
***特別養護老人ホームほのぼの荘特別養護老人ホーム北海道利尻郡利尻町仙法志字政泊
***町役場/特別養護老人ホーム特別養護老人ホーム北海道利尻郡利尻富士町鬼脇字金崎
***村役場/特別養護老人ホーム銀河荘特別養護老人ホーム北海道虻田郡留寿都村字留寿都
****/普仁園・愛仁園特別養護老人ホーム,福祉施設,養護老人ホーム,老人福祉施設北海道帯広市南町



【抽出条件テーブル】
業種住所
老人福祉施設北海道
老人福祉施設青森県
老人福祉施設岩手県

ラーメン店北海道
ラーメン店青森県
ラーメン店岩手県



【抽出結果テーブル】
会社名業種住所

*****慶和園特別養護老人ホーム,老人福祉施設北海道虻田郡京極町字更進
***特別養護老人ホームほのぼの荘特別養護老人ホーム青森県*******
***町役場/特別養護老人ホーム特別養護老人ホーム岩手県利尻郡利尻富士町鬼

A 回答 (3件)

追加クエリまたはテーブル作成クエリで【テーブル1】と【抽出条件テーブル】を連結なしで使用



フィールド名:会社名業種住所
テーブル名 :テーブル1
抽出条件  :Like "*" & [抽出条件テーブル].[業種住所] & "*"
    • good
    • 0

Like演算子で"*老人福祉施設北海道*"を使うと、連続して


「老人福祉施設北海道」を含むものしか抽出できませんが、
それでよいのでしょうか?
だとすると、「老人福祉施設青森県」では抽出結果2番目の
「特別養護老人ホームほのぼの荘特別養護老人ホーム青森県」は
"老人ホーム"≠"老人福祉施設"なので、抽出されません。

>重複削除がされていて欲しいです
1回のクエリ操作では実現できません。下記のような2回の操作に
なります。先ず「抽出」というクエリを作っておきます。
(1)抽出と抽出結果を結合し、一致するデータを抽出結果から削除
(2)抽出から抽出結果に挿入
但し、抽出と抽出結果に、1:1の関係がないと削除できません。
つまり、会社名業種住所が一意キーか重複を許さないインデックスに
指定されている必要があります。

また、SQLとしてはWHERE句ではなくJOIN句に指定する方が自然ですが、
JOIN句でLike演算子を使う場合は直接SQLを書き込むしかありません。

もし、業種と住所が別フィールドであるとかの事情があれば補足して下さい。
    • good
    • 0

提示されたサンプルは、空白部分が項目の区切りですよね。



【テーブル1】の名前を「T1」、項目が「会社」「業種」「住所」
【抽出条件テーブル】の名前を「T2」、項目が「業種」「住所」

と仮定します。

抽出結果を表示するクエリを考えてみます。


SELECT DISTINCT T1.* FROM T1, T2 WHERE
T1.業種 LIKE "*" & T2.業種 & "*" AND T1.住所 LIKE T2.住所 & "*"
;

※住所部分は前方一致にしてみました。


【抽出結果テーブル】の名前を「T3」、項目が「会社」「業種」「住所」とすると、

SELECT DISTINCT T1.* INTO T3 FROM T1, T2 WHERE
T1.業種 LIKE "*" & T2.業種 & "*" AND T1.住所 LIKE T2.住所 & "*"
;


※使えるものなのかは、やってみてください。

間違ってたらごめんなさい。


※ DISTINCT の使い方をヘルプ等で確認してみてください。
(重複うんぬんの時に便利かも)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!