하나의 열에 위치 번호 (1 - 6)에 연결된 여러 값을 반환하려고하지만 각각의 경우 특정 위치에있는 값만 반환하려고합니다. 기본적으로 각 열에 대해 하나씩 6 개의 열을 만들고 해당 위치 번호와 관련된 모든 결과 값을 반환합니다.여러 값을 CASE 내에서 중첩 된 SELECT에서 반환
(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 값을 반환한다는 것입니다 : 나는이 결과를 얻기 위해 시도하는 6 중첩 된 사례 문을 만들었습니다. 이 케이스를 꺼내면 오류 메시지 "subquery가 두 개 이상의 값을 반환했습니다. 하위 쿼리가 =,! =, <, < =,>,> = 또는 하위 쿼리가 다음과 같이 사용될 때 허용되지 않습니다. 표현."
편집 : 전체 코드는보기가 그래서
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
;
특별히주의하는 것이 도움이 될 수있는 ISNULL/IFNULL 이후 사용중인 SQL (T-SQL, MySQL은, PL/SQL) 어떤 변형, 기능은 그들 사이에 다양합니다. –