SQL クエリのヘルプが必要です。
TestOptions、CreateScript、および TestResults の 3 つのテーブルがあります。
Testoptions は、特定のテストのすべてのデータを保持します。CreateScript は、インデックスで示される、順番に実行されるテストのコレクションを保持します。TestResults は結果を保持します。
特定の機器のテストのリストを表示したいと考えています。リストには含まれます。TestType、TestName、テストの制限と結果。一部のテストはまだ実行されていない可能性があるため、テスト結果テーブルにはそのテストのエントリはありません。テストが実行されていない場合でも、テストの詳細を取得する必要があります。リストはインデックスで並べ替えられ、TestType でグループ化されます。
これまでのところ、私は持っています:
SELECT TestType, TestName, LowerLimits, UpperLimits, ResultRecorded
FROM CreateScriptTable
INNER JOIN TestOptionsTable ON CreateScriptTable.TestName =T estOptionsTable.TestName
LEFT JOIN TestResultsTable ON CreateScriptTable.TestName = TestResultsTable.TestName
WHERE CreateScriptTable.InstrumentType= 'instType'
AND jobNo ='000'
AND SerialNo ='000'
ORDER BY [Index] ASC, TestType
SerialNo と JobNo は TestResults テーブルにのみあります。このクエリは、テスト結果テーブルに入力されたテストの詳細のみを提供します。テストの詳細と、テストが完了した場合の結果を教えてください。
予想される出力は次のとおりです。
TestType TestName Lower Upper Result
type1 test1 12 20 12
type1 test2 96 108 105
type2 test2 98 108
type3 test3 95 105
実際の出力はもっと似ています
TestType TestName Lower Upper Result
type1 test1 12 20 12
type1 test2 96 108 105
結果テーブルにエントリがあるテストのみが表示されます。
結合に正しくアプローチしていない可能性があります。私は内部、左、右、および完全な結合をいじりましたが、役に立たず、今はかなり困惑しています。