Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите, Запрос  [new]
VIT2708_
Guest
declare @agGrpBind bit;
	set @agGrpBind = (select top(1) g.autoBind from dbo.UserInGroups ug left join dbo.Groups g on g.id=ug.groupId where ug.userId=@userId and g.autoBind='True');

select * from Table where cn=(case when @agGrpBind ='True' then 'Фильтр1' else  'Фильтр2' end)


Проблема в том что на клиенте вылетает ошибка "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."

Поскажите как обьявить переменную или переписать запрос

Пробовал так
select * from Table where cn=(case when @agGrpBind  in ('True') then 'Фильтр1' else  'Фильтр2' end)
но не работает

Спасибо
2 окт 14, 12:03    [16649354]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708_
Проблема в том что на клиенте вылетает ошибка

На какой строке кода ?

VIT2708_
но не работает

Это сообщение об ошибке ?
2 окт 14, 12:06    [16649385]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
VIT2708_
Guest
Glory
VIT2708_
Проблема в том что на клиенте вылетает ошибка

На какой строке кода ?

VIT2708_
но не работает

Это сообщение об ошибке ?


Это сообщение выдает VisualStudio в дебаге запускаю и при вызове процедуры все отрабатывает но после этого вываливается исключение. Мне это важно так как пользователь не понимает совершил он операцию или нет так как все отработало а сообщение из-за exception показвает что нет

Вот может можна как то по другому переписать?
2 окт 14, 12:10    [16649420]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
VIT2708_,

SELECT TOP(1) вернул более одной записи?
На наших глазах произошло чудо!
2 окт 14, 12:11    [16649425]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708_
Это сообщение выдает VisualStudio в дебаге запускаю и при вызове процедуры все отрабатывает но после этого вываливается исключение.

Т.е. вы не знаете, какая команда генерирует эту ошибку ?

VIT2708_
Вот может можна как то по другому переписать?

Т.е. нужно угадать, какую задачу вы хотите решить и предложить все варианты ?
2 окт 14, 12:12    [16649432]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
VIT2708_
Проблема в том что на клиенте вылетает ошибка "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."
Показанный код не может давать такую ошибку.
2 окт 14, 12:17    [16649478]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
VIT2708_
Guest
iap
VIT2708_,

SELECT TOP(1) вернул более одной записи?
На наших глазах произошло чудо!


так вот именно возвращает 1 запись!!!!!!! Но вот проблема в том что студия выдает ошибку и пользователям не понятно где есть ошибка а где нет

К сообщению приложен файл. Размер - 55Kb
2 окт 14, 12:17    [16649482]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708_
так вот именно возвращает 1 запись!!!!!!!

А почему вы решили, что эта команда падает с ошибкой то ?
2 окт 14, 12:19    [16649491]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
VIT2708_
iap
VIT2708_,

SELECT TOP(1) вернул более одной записи?
На наших глазах произошло чудо!


так вот именно возвращает 1 запись!!!!!!! Но вот проблема в том что студия выдает ошибку и пользователям не понятно где есть ошибка а где нет

Картинка с другого сайта.
А если я буду отвечать по-китайски, Вам понравится?
2 окт 14, 12:20    [16649500]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
VIT2708_
Guest
Glory
VIT2708_
так вот именно возвращает 1 запись!!!!!!!

А почему вы решили, что эта команда падает с ошибкой то ?


Потому что когда я убираю этот фильтр

declare @agGrpBind bit;
	set @agGrpBind = (select top(1) g.autoBind from dbo.UserInGroups ug left join dbo.Groups g on g.id=ug.groupId where ug.userId=@userId and g.autoBind='True');


все работает нормально
2 окт 14, 12:21    [16649510]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
iap
VIT2708_
пропущено...


так вот именно возвращает 1 запись!!!!!!! Но вот проблема в том что студия выдает ошибку и пользователям не понятно где есть ошибка а где нет

Картинка с другого сайта.
А если я буду отвечать по-китайски, Вам понравится?
Берите в руки профайлер и узнайте, какой запрос приходит на сервер.
2 окт 14, 12:22    [16649512]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708_
Потому что когда я убираю этот фильтр

Вот врать не надо
Если вы уберете declare @agGrpBind bit;
то упадет select * from Table where cn=(case when @agGrpBind ='True' then 'Фильтр1' else 'Фильтр2' end)

Или вы его тоже убираете ?
И в процедуре не остается вообще ничего ?
2 окт 14, 12:23    [16649527]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
VIT2708_
Guest
Glory
VIT2708_
Потому что когда я убираю этот фильтр

Вот врать не надо
Если вы уберете declare @agGrpBind bit;
то упадет select * from Table where cn=(case when @agGrpBind ='True' then 'Фильтр1' else 'Фильтр2' end)

Или вы его тоже убираете ?
И в процедуре не остается вообще ничего ?


я думал вы догадаетесь если убирать с declare то и убираетстся с запроса тоже
2 окт 14, 12:30    [16649575]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, Запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708_
я думал вы догадаетесь если убирать с declare то и убираетстся с запроса тоже

Когда вы догадаетесь привести строку, которая действительно генерирует ошибку, то приходите снова
2 окт 14, 12:31    [16649587]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить