-2

我想为以下 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%

在这里,我想将参数动态传递给百分比列或天数列。

请帮助编写一个存储过程以仅选择“12% - 15%”范围内的百分比</p>

4

3 回答 3

1

简单地检查百分比......

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

对于更复杂的检查(表和/或字段是动态指定的),那么您可以考虑构建一个要运行的 TSQL 字符串sp_executesql

于 2012-08-28T08:49:01.617 回答
0

您可以将 minvalue 和 maxvalue 等参数作为两个不同的参数传递,然后将它们用于您的 SP。

于 2012-08-28T08:37:39.457 回答
0

尝试类似的东西

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

我希望这有帮助。

于 2012-08-28T08:42:26.003 回答