akhil.8 Ответов: 2

Как мне решить эту ошибку? Кто-нибудь может мне помочь


Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.


Что я уже пробовал:

Select
CASE
    WHEN 
		(SELECT subject_type FROM cdbwf_task
		WHERE cdbwf_task.cdb_process_id in (SELECT cdb_process_id
					FROM   cdbwf_process
					WHERE  EXISTS (SELECT cdb_process_id 
									FROM   cdbecm_briefcase2ec_v 
									WHERE  cdbwf_process.cdb_process_id = cdbecm_briefcase2ec_v.cdb_process_id)) AND status = 10) = 'Person' 
		THEN 
			(select personalnummer 
			 from angestellter 
			 where personalnummer in (
					   SELECT subject_id FROM cdbwf_task
					   WHERE cdbwf_task.cdb_process_id in (SELECT cdb_process_id
							FROM   cdbwf_process
							WHERE  EXISTS (SELECT cdb_process_id 
											FROM   cdbecm_briefcase2ec_v 
											WHERE  cdbwf_process.cdb_process_id = cdbecm_briefcase2ec_v.cdb_process_id)) AND status = 10))
	ELSE
		(select * 
		from cdbvp_resp_brows 
		where subject_id in (		
			SELECT subject_id FROM cdbwf_task
			WHERE cdbwf_task.cdb_process_id in (SELECT cdb_process_id
						FROM   cdbwf_process
						WHERE  EXISTS (SELECT cdb_process_id 
										FROM   cdbecm_briefcase2ec_v 
										WHERE  cdbwf_process.cdb_process_id = cdbecm_briefcase2ec_v.cdb_process_id)) AND status = 10))
	END

Andre Oosthuizen

ЭТОТ может помочь, если еще не видел.

2 Ответов

Рейтинг:
2

OriginalGriff

Ошибка заключается в том, что вы не можете включить AND STATUS = 10 к вашим услугам WHERE условие, потому что список выбора может возвращать более одной строки, и он понятия не имеет, с какой из них он должен проверять.

Я бы начал с выполнения каждого подзапроса независимо и посмотрел, что они на самом деле возвращают, а затем подумал о том, что я пытаюсь получить в результате здесь.

Мы не можем сделать это для вас - мы понятия не имеем, чего вы пытаетесь достичь, или какой-либо доступ к вашим данным!


Рейтинг:
0

Richard Deeming

Цитата:
ELSE
    (select * 
    from cdbvp_resp_brows 
Вы пытаетесь выбрать несколько столбцов в качестве значения для одного столбца.

Заменять select * с select COLUMN_NAME, указывая имя одного столбца, который вы хотите вернуть.