J'essaie de renvoyer plusieurs valeurs dans une seule colonne qui sont liées à un numéro de position (1 à 6), mais uniquement les valeurs qui ont une certaine position dans chaque cas. Fondamentalement, j'ai 6 colonnes que je veux créer, 1 pour chaque position, et retourne toutes les valeurs de résultat associées à ce numéro de position. J'ai créé 6 déclarations de cas pour tenter Nested d'obtenir ces résultats:Renvoyer plusieurs valeurs de SELECT imbriquées dans 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,
Le problème est qu'ils ne renvoient que des valeurs NULL dans la façon dont il est mis en place. Si je supprime le cas, la sous-requête Message d'erreur a renvoyé plus de 1. Cela n'est pas autorisé lorsque la sous-requête suit =,! =, <, < =,>,> = ou lorsque la sous-requête est utilisée comme expression."
EDIT: Le code complet est partie en vue donc je l'ai simplifié à ce qui est pertinent
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
;
peut être utile de noter précisément ce que variante de SQL (T-SQL, MySQL, PL/SQL) que vous utilisez, depuis le ISNULL/IFNULL les fonctions varient entre eux. –