У меня есть запрос, который использует подзапросы для определения определенных значений. Когда во втором подзапросе есть только один результат, он работает нормально, но при наличии более одного возможного результата во втором подзапросе это сбой происходит сSQL Вставить в таблицу, где подзапрос возвращает более одного значения
Msg 512, уровень 16, состояние 1, строка 1 Подзапрос возвратил более 1 значение. Это недопустимо, если подзапрос следует =,! =, <, < =, ,> = или когда подзапрос используется как ошибка выражения.
Я хочу вставить запись для каждого из нескольких значений, которые идентифицируются вторым подзапросом.
Мой код выглядит следующим образом:
Declare @RoomID char (11)
Select @RoomID = min (RoomID) from tbRoom
While @RoomID is not null
begin
INSERT INTO [dbo].[tbSurveyLocation]
([SurveyUID]
,[LocationParentID]
,[LocationID]
,[Comment]
,[SurveyParentTypeID]
,[CanSurvey]
,[Surveyed]
,[Status]
,[LastUpdate]
,[LastUpdateUser]
,[ClientCode])
VALUES
((SELECT SurveyUID FROM tbSurvey where SurveyTitle = 'CARLISLE PARK CRICKET PAVILLION')
,30
,(SELECT tbRoom.RoomID FROM tbBuilding INNER JOIN
tbBuildingLinkBusinessUnit ON tbBuilding.BuildingID = tbBuildingLinkBusinessUnit.BuildingID INNER JOIN
tbBusinessUnit ON tbBuildingLinkBusinessUnit.BusinessUnitID = tbBusinessUnit.BusinessUnitID INNER JOIN
tbFloor ON tbBuilding.BuildingID = tbFloor.BuildingID INNER JOIN
tbRoom ON tbFloor.FloorID = tbRoom.FloorID
WHERE tbBusinessUnit.BusinessUnitName like '%CARLISLE PARK CRICKET PAVILLION%')
,'',203 ,1,1,0,CONVERT(DATETIME, '10/01/2014 00:00', 102),'PDS 2014','~K2~')
end
Я проверил другие подобные ответы на здесь, но не могу найти ничего, что непосредственно связано с различными подзапросов как в моей ситуации.
это: http://stackoverflow.com/questions/13830312/insert-multiple-rows-using-subquery иначе, почему бы вам не получить «подзапрос» сначала, добавить это в список, а затем сделать свой второй «основной» запрос? – jbutler483
Спасибо, но я пробовал это и, очевидно, должен был ошибиться, поскольку я все еще получал ту же ошибку. Что касается опции sub-query/list, я очень к этому знаком и не знаю, как извините. Цените, что вы нашли время ответить, хотя –
читайте по этому поводу: http://support2.microsoft.com/kb/111401/nl – jbutler483