2012-08-28 9 views
-2

Я хочу написать хранимую процедуру для следующей таблицы SQL Server:хранимой процедуры параметров SQL Server

No Date   Days  Percentage 
1 17-Aug-12  2   -0.34% 
2 3-Aug-12  15   -29.39% 
3 27-Jul-12  22   12.02% 
4 20-Jul-12  29   -0.64% 
5 13-Jul-12  36   -3.45% 
6 6-Jul-12  43   -99.93% 
7 29-Jun-12  50   41.26% 

Здесь я хочу передать параметр в процентном столбце или столбце дней динамически.

Пожалуйста, помогите WITE хранимую процедуру, чтобы выбрать только проценты в диапазоне говорят, '12% - 15%»

+0

Что вы подразумеваете под "или любой другой колонкой"? Вы просите способ передать параметр, чтобы указать * который * столбец, который нужно проверить? – freefaller

ответ

1

Чтобы просто проверить на процент ...

CREATE PROCEDURE [GetPercentages] 
(@Low INT, @High INT) 
AS 
BEGIN 
    SELECT * 
    FROM [MyTable] 
    WHERE [Percentage] BETWEEN @Low AND @High 
END 

Для более сложной проверки (где таблицы и/или поля задаются динамически), то вы могли бы смотреть на построение строки TSQL будет работать против sp_executesql ,

0

вы можете передать параметры, как MINVALUE и MAXVALUE как два разных параметра, а затем использовать их в SP.

0

Try что-то вроде

IF EXISTS (SELECT name 
      FROM sys.procedures 
      WHERE name = N'myspSelectDateRange') 
DROP PROCEDURE myspSelectDateRange; 
GO 
CREATE PROCEDURE myspSelectDateRange @DateA DATETIME, @DateB DATETIME 
AS 
SELECT [SeqNo], [MyDate], [Days], [Percentage] 
FROM MyTable 
WHERE [MyDate] 
BETWEEN @DateA AND @DateB; 
GO 

Я надеюсь, что это помогает.

Смежные вопросы