Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Pabl0 Member Откуда: Сообщений: 265 |
Добрый вечер! Собственно у меня вот такая ошибка: "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated." ALTER procedure [UI] @Item int, @Status INT, @Id INT as begin set nocount on --SET ARITHABORT ON SELECT distinct /* Actor as [ID] */C2.ID, C2.Firm AS NAME,/* C1.Name, */ C3.Name AS VidID, C4.Name AS SubVid, City AS Region, Approval = CASE C2.Approval WHEN 4 THEN 'Аккредитован' WHEN 5 THEN 'Отклонен' WHEN 6 THEN 'В черном списке' end, C1.Status, /* C2.Approval, */ C2.DateRegLegal, C3.Name AS ActivityName, C4.Name AS SubActivityName into #Temp from dbo.Actors C1, ContractFull C2, DictContractActivity C3, DictContractSubsActivity C4 where ItemID = @Item AND C2.VidID = C3.VidID and C3.VidID = C4.PodVid AND C2.SubVid = C4.ID AND C1.Status > @Status --AND C2.ID = 11355000 --AND Approval IN (4,5,6) --SELECT * FROM #Temp SELECT SubActivity into #SubActivityID from ContractFullSubActivity where ContractID = @id SELECT Name into #subTemp from DictContractSubsActivity d inner join #SubActivityID d1 on d.ID = d1.SubActivity where podvid = (select VidID from #temp) SELECT stuff ( ( SELECT TOP 1 t2.Name+',' from #subTemp t2 for xml path('') ,type ).value('.','varchar(max)'), 1,0,'' ) as Name1 into #sub from #subTemp t1 update #temp set SubVid = name1 SELECT * from #temp END Я знаю что можно сделать TOP 1 но с точки зрения это не правильно будет. Можете подсказать как решить проблему с ошибкой? |
3 янв 16, 20:28 [18639061] Ответить | Цитировать Сообщить модератору |
3unknown Member Откуда: New York Сообщений: 140 |
Избавиться от подзапроса where podvid = (select VidID from #temp). Вместо него where podvid in (select VidID from #temp) |
3 янв 16, 20:47 [18639148] Ответить | Цитировать Сообщить модератору |
Pabl0 Member Откуда: Сообщений: 265 |
Спасибо, помогло. |
3 янв 16, 20:57 [18639185] Ответить | Цитировать Сообщить модератору |
Pabl0 Member Откуда: Сообщений: 265 |
Conversion failed when converting the varchar value 'Видео- и аудиопродакшн' to data type int. А можите еще подсказать? |
3 янв 16, 21:10 [18639262] Ответить | Цитировать Сообщить модератору |
3unknown Member Откуда: New York Сообщений: 140 |
Это Вы где-то стринг сравниваете с интеджер, слово с цифрой. Что-то в логике процедуры не так у Вас. |
3 янв 16, 21:17 [18639300] Ответить | Цитировать Сообщить модератору |
Pabl0 Member Откуда: Сообщений: 265 |
Самое интересное что если вот так то это ошибке нет и я везде натыкал SELECT - ов и проходит код. А если вот так: --where podvid = (select VidID from #temp) where podvid in (select VidID from #temp) То как будто бы он дальше не проходит и ругается. Конечно может быть ошибка с которой я сюда написал более серьезная и закрывала эту ошибку. |
3 янв 16, 21:46 [18639428] Ответить | Цитировать Сообщить модератору |
Pabl0 Member Откуда: Сообщений: 265 |
Разобрался, спасибо :) |
3 янв 16, 23:32 [18639900] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |