複雑なクエリについて助けを求めてここに来ました。私はこれのために多くの異なることを試みましたが、私が望む結果が得られませんでした。私のスキーマの骨抜きバージョンは次のとおりです。問題の3つのテーブルは、Employeesテーブル、EmployeeTrainingテーブル、およびRequiredTrainingテーブルです。従業員テーブルには、empID、名前、住所、電子メール、positionWorkedなどの従業員の情報が保持されます。EmployeeTrainingテーブルには、empIDとTrainingNameが保持されます。RequiredTrainingテーブルには、PositionとTrainingNameがあります。
従業員:empID、名前、役職
EmployeeTraining:empID、 trainingName
requiredTraining: Position、 trainingName
さらに明確にするために、いくつかのサンプルデータを次に示します。
従業員
*EMPID~~Name~~Position~~
1 Ted Accountant
2 Bob Janitor
従業員研修
**empID~~TrainingName**
1 Crunching Numbers
1 Microsoft Excel
1 Using an Abicus
2 Lemon Pledge 100
2 Scrubbing Toilets
必要なトレーニング
**position**~~**TrainingName**
Accountant Crunching Numbers
Accountant Microsoft Excel
Accountant Using an Abicus
Accountant TPS Reports
Janitor Lemon Pledge 100
Janitor Scrubbing Toilets
英語で、そして長期的には、フォームから従業員を選択し、その従業員から完了したすべてのトレーニングを示すサブフォームを作成したいと思います(SELECT * FROM Employees INNER JOIn EmployeeTraining on employees.empid = employeetraining.empID WHERE empID = me.empID)
また、現在の職務に必要な、従業員が完了していないトレーニングを示す別のサブフォームが必要です。これは私が苦労しているところです。私はMSAccessのクエリビルダーの使用に慣れていないか、慣れていませんが、「一致しないクエリを見つける」だけでなく、独自のクエリを作成しようとしました。これはMINUS演算が機能するように見えますが、MSAccessはMINUSをサポートしていません。上記のクエリからrequiredTrainingテーブルのクエリへのNOTINだけでなく、null述語を使用してLEFT JOINを試しましたが、探している結果が得られませんでした。
たとえば、このサンプルデータに対して書き込もうとしているクエリの結果は次のようになります。
従業員ID1の場合(会計士のテッド)
tedには「TPSレポート」トレーニングが必要です
従業員2(管理人のボブ)
ボブは自分のポジションのトレーニングをすべて完了しました。
私が試しているクエリの例は次のとおりです。
SELECT employees.position,employeeTraining.empid,employeetraining.TrainingName
FROM EmployeeTraining
InNER JOIN Employees ON EmployeeTraining.empid = employees.empid
WHERE empid = '1'
LEFT JOIN
SELECT TrainingName,Position FROM requiredTraining
ON EmployeeTraining.Training = RequiredTraining.Training
WHERE (((EmployeeTraining.Training is Null)))
編集:この質問は回答済みです。助けてくれてありがとう。あなたの質問は、それぞれが異なっていましたが、すべて目標を達成しました。