Я пытаюсь вернуть несколько значений в одном столбце, которые связаны с номером позиции (от 1 до 6), но только те значения, которые имеют определенную позицию в каждом случае.В основном у меня есть 6 столбцов, которые я хочу создать, по 1 для каждой позиции, и вернуть все значения результата, связанные с этим номером позиции.Я создал 6 операторов Nested Case, чтобы попытаться получить следующие результаты:
(CASE WHEN tbl_TestWells.well_result <> NULL
THEN
(SELECT tbl_TestWells.well_result
FROM tbl_TestWells
WHERE tbl_TestWells.Well_Index = 1)
ELSE NULL END) AS Well_1_Graded_Result,
Проблема в том, что они возвращают только значения NULL в том виде, в котором он настроен.Если я исключаю случай, то получаю подзапрос «Сообщение об ошибке», возвращающий более 1 значения. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используетсявыражение «.
РЕДАКТИРОВАТЬ: полный код является частью представления, поэтому я упростил его до того, что имеет отношение
SELECT DISTINCT
--Other Columns being selected
(CASE WHEN tbl_TestWells.well_result <> NULL
THEN
(SELECT tbl_TestWells.well_result
FROM tbl_TestWells
WHERE tbl_TestWells.Well_Index = 1)
ELSE NULL END) AS Well_1_Graded_Result,
--The other five well results are set up in the exact same format as above, just replacing 1 with the corresponding number
FROM tbl_TestCartridges
JOIN tbl_Tests ON
tbl_Tests.test_uid = tbl_TestCartridges.test_uid
JOIN tbl_Programs ON
tbl_Programs.program_uid = tbl_Tests.program_uid
JOIN tbl_Cartridges ON
tbl_Cartridges.system_uid = tbl_Programs.system_uid
JOIN tbl_TestWells ON
tbl_TestWells.test_cartridge_uid = tbl_TestCartridges.test_cartridge_uid
JOIN tbl_TestSamples ON
tbl_TestSamples.test_well_uid = tbl_TestWells.test_well_uid
ORDER BY tbl_TestCartridges.barcode
;