在 SQL 查询方面需要一些帮助。
我有三个表 TestOptions、CreateScript 和 TestResults。
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
仅显示结果表中条目的测试。
可能我没有正确接近连接。我已经搞砸了内部,左,右和完全连接,但无济于事,现在很困惑。