Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как исключить из запроса?  [new]
yaros-hoi
Member

Откуда: Rudnyy
Сообщений: 198
здрваствуйте!
пытаюсь выполнить запрос
select s.id, s.dt, s.sales, s.prim
from baltika..sales s
where	s.dt between '01.09.2009'  and  '30.09.2009'
	and s.prim not like( 
	
		   (select rtrim(ltrim(wholesale)) from wholesale)
)
возникает ошибка
Server: Msg 512, Level 16, State 1, Line 13
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
из ошибки понятно, что подзапрос должен вернуть только одно значение.
в общем пытаюсь выбрать из таблицы sales по полю prim, те записи, которые не встречаются в таблице wholesale.

использую mssql 2000
надеюсь на вашу помощь
12 ноя 09, 14:55    [7920937]     Ответить | Цитировать Сообщить модератору
 Re: как исключить из запроса?  [new]
Taffy
Member

Откуда:
Сообщений: 20498
select s.id, s.dt, s.sales, s.prim
from baltika..sales s
where	s.dt between '01.09.2009'  and  '30.09.2009'
	and not exists( select 1 from wholesale where s.prim like (rtrim(ltrim(wholesale))) )
12 ноя 09, 14:58    [7920963]     Ответить | Цитировать Сообщить модератору
 Re: как исключить из запроса?  [new]
zenik
Member

Откуда:
Сообщений: 100
and s.prim not IN (
12 ноя 09, 14:59    [7920985]     Ответить | Цитировать Сообщить модератору
 Re: как исключить из запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
select s.id, s.dt, s.sales, s.prim
from baltika..sales s
where s.dt>='20090901' and s.dt<'20091001'
and not exists(select * from wholesale where s.prim like rtrim(ltrim(wholesale)));
??
12 ноя 09, 14:59    [7920986]     Ответить | Цитировать Сообщить модератору
 Re: как исключить из запроса?  [new]
GlebZ
Member

Откуда: USA
Сообщений: 284
s.prim like rtrim(ltrim(wholesale))
А у вас там в wholesale какие данные? типа '%ааа%' или просто 'ааа'?
потому как во втором случае работать будет только в случае
s.prim = rtrim(ltrim(wholesale))
Или делайте
s.prim like '%'+rtrim(ltrim(wholesale))+'%'
12 ноя 09, 18:32    [7922386]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить