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

Откуда:
Сообщений: 13
Есть такая вот процедура:

CREATE PROCEDURE Find_p
@ot MONEY=NULL,
@do MONEY=NULL,
AS
if @ot IS NULL set @ot=0;
SELECT price as 'Цена',
FROM dbo.main
WHERE
(@ot IS NULL OR @do IS NULL OR price >= @ot AND price <= @do)
GO

Не знаю как задать значение правой границы поиска? Суть такова есть приложение которое обращается к базе через эту ХП. В приложении два text-box в которые пользователь вводит значения для поиска по цене. Пользователь может ввести как оба значения (от и до) так и по отдельности каждое. Вслучае когда вводится оба значения все работает. Когда пользователь вводит значение "до" но оставляет пустым "от", тоже работает, так как в таком случае, значение параметра "от" заменяется на 0. А вот если пользователь введет только значение "от", то нужно как-то задать значение "до", оно должно быть максимальным в столбце price таблицы main.
Подскажите как это сделать?
14 дек 09, 08:32    [8061326]     Ответить | Цитировать Сообщить модератору
 Re: ХП - Поиск  [new]
ё
Guest
незнаю что вы там продаёте
но ноликов, в случае чего - можно добавить
 
CREATE PROCEDURE Find_p 
@ot MONEY= 0,
@do MONEY= 1000000000
AS
SELECT price as 'Цена'
FROM dbo.main
WHERE
price >= @ot AND price <= @do
14 дек 09, 08:57    [8061359]     Ответить | Цитировать Сообщить модератору
 Re: ХП - Поиск  [new]
VladimirMA
Member

Откуда: Новосибирск
Сообщений: 74
1. if ((@do IS NOT NULL) AND (@ot IS NULL))
set @ot=0;
2. if ((@do IS NULL) AND (@ot IS NOT NULL))
select @do=MAX(price) from main;

что то вроде этого
логику взял ИСКЛЮЧИТЕЛЬНО из вашего условия
14 дек 09, 09:42    [8061480]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить