対応するサブセットがテーブルBに存在するテーブルAからすべてのサブセットを選択する方法はありますか?テーブルAの各サブセットは、少なくともテーブルBの対応するサブセットのすべてのエントリを持っていなければなりません。レコードのサブセットで検索するSQL
では、これは「剰余を持つ除算」と呼ばれますが、多少の関係があるため問題はより複雑です。
表
ユーザ名テキスト|ファイルテキスト| ACCESSLEVEL int型
表B
AppNameはテキスト|ファイルテキスト| ACCESSLEVEL INT
サンプルデータ
表
User1 | aaa.txt | 1
User1 | bbb.txt | 3
User1 | ccc.txt | 1
User2 | aaa.txt | 3
表B
Appl1 | aaa.txt | 1
Appl1 | bbb.txt | 1
Appl2 | aaa.txt | 1
Appl3 | bbb.txt | 5
Appl4 | aaa.txt | 1
Appl4 | bbb.txt | 1
Appl4 | ccc.txt | 1
Appl4 | ddd.txt | 1
期待される結果:
User1 | Appl1
User1 | Appl2
User2 | Appl2
ユーザー1は、これらのアプリケーションで使用されるすべてのファイルに必要なアクセス権を持っているため、アプリケーションAppl1およびAppl2に「完全な」アクセス権を持っています。アクセスレベルが十分高くないため、彼はアプリケーションAppl3にアクセスできません。彼はファイルddd.txtにアクセスできないため、アプリケーションAppl4にアクセスできません。
基本的には、レコードのサブセットを比較し、テーブルBのサブセットがテーブルAのサブセットと等しいかそれよりも大きいすべてのケースを返す必要があります。SQLで行う方法はありますか?
助けてください。
あなたはストアドプロシージャを使用して考えたことはありますか?私はDB2にアクセスすることはできませんが、私の推奨は、ユーザーとアプリケーションのためのカーソル付きストアド・プロシージャーを使用することです。 – zedfoxus
ヒントをありがとう。私は、私はそれを行うためにいくつかのREXXスクリプトを書くことができます。しかし、私はそれがSQLで行うことができると感じていたが、私はそれを行うために必要なスキルを持っていない。 –