パラメータを使用せずに以下のクエリを実行する方法を見つけることができませんでした。データベースには 2000 を超えるパラメーターの可能な値があるため、すべてのパラメーターを 1 つの列にリストし、クエリからの出力をもう 1 つの列にリストするテーブルを出力する必要があります。以下は、現在機能するものの簡略化されたバージョンです。
SELECT [enter name] AS ExclName,
Sum(revenue) AS MaxRev
FROM tbltasks
WHERE tbltasks.task IN (SELECT DISTINCT tblabilities.task
FROM tblabilities
WHERE tblabilities.name <> [enter name]);
tbltasks tblpeople tblabilities
task revenue name name task
A 10 Bob Bob A
B 9 Tom Tom A
C 8 Jack Jack A
D 7 Mary Tom B
E 6 Diane Jack B
F 5 Alice Mary B
G 4 Sam Jack C
H 3 Mary C
I 2 Diane C
Mary D
Diane D
Alice D
Diane E
Alice E
Sam E
Bob F
Tom G
Alice H
現在、クエリを実行し、プロンプトが表示されたら「Bob」などの名前を手動で入力し、次のような 1 行の出力を取得します。
ExclName MaxRev
Bob 47
しかし、私が欲しいのは完全なテーブルです:
ExclName MaxRev
Bob 47
Tom 48
Jack 52
Mary 52
Diane 52
Alice 49
Sam 52
つまり、指定されたメンバーを除外したチームが達成できる最大の収益を知りたい. 他のグループが関係しているため、実際のアプリケーションはより複雑です (たとえば、Jack を除外する場合、Mary も除外する必要があります) が、上記の単純な問題を解決すれば、残りを処理できると思います。
tblPeople の名前を使用して、それらを単一のクエリで MaxRev 計算にリンクする方法が必要だと考え続けていますが、それを理解することはできませんでした。すべてのパラメーターをループするコードを実行することもできますが、より簡単な解決策があることを願っています。誰の入力にも感謝します。