Member 12183079 Ответов: 2

Как разрешить подзапрос, возвращающий более 1 значения


Привет

Я получаю ошибку, когда выполняю запрос, и ошибка заключается в том, что подзапрос возвращает более 1 значения. Это не допускается, когда подзапрос следует за=,!=, <, <=, >, >= или когда подзапрос используется в качестве выражения
Так что, пожалуйста, помогите мне

Я Даю Вам Код Ниже-

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

Объявите @Course85 VARCHAR(50)=";
Объявите @College85 VARCHAR(50)=";
DECLARE @InspectionDate85 VARCHAR(50)=";

SET @Course85=(выберите имя курса из mast_Course, где CourseId=@inpCourseCode)
SET @College85=(выберите CollegeName из CollegeMaster, где CollegeID=@inpCollegeCode)

Набор @InspectionDate85 = (выберите конвертировать(тип varchar(11),IESL.DateFrom,103) +'к'+ конвертировать(тип varchar(11),IESL.DateTo, 103) InspectionDate
От Inspection_Details IES
Внутреннее соединение Insp_InspectorEmailStatusLog IESL на IESL.InspectionId = х годов.InspectionId и IESL.InspectorId=х годов.Инспекторид
ГДЕ ИЕС.InspectionId=@inpInspectionId
И Х ГОДОВ.InspectorID=@inpInspectorID
И IESL.Статус в ('1', '5'))


ВЫБИРАТЬ @Course85 CourseName, @College85 CollegeName,@InspectionDate85 InspectionDate

2 Ответов

Рейтинг:
1

Mohtshm Zubair

Используйте предложение top 1 в своем подзапросе для ограничения одной записи за раз в настоящее время ваш запрос выглядит следующим образом


SET @Course85=(SELECT CourseName ....)
SET @College85=(SELECT CollegeName FROM CollegeMaster ....)

SET @InspectionDate85 = (SELECT ...)



Измените их на, добавив топ-1 в каждом запросе

SET @Course85=(SELECT Top 1 CourseName ....)
SET @College85=(SELECT Top 1 CollegeName FROM CollegeMaster ....)

SET @InspectionDate85 = (SELECT  Top 1 ...)


Рейтинг:
0

Peter Leow

Некоторые из ваших операторов SELECT возвращают несколько значений. Наиболее вероятным виновником является тот, который заканчивается на

AND IESL.Status IN ('1','5')
Однако только вы можете узнать изгоя одного.