查询SSRS中的存储过程

时间:2014-09-09 14:25:21

标签: sql sql-server stored-procedures reporting-services

我从表中获取数据,并通过存储过程写入报告。在报告部分,它必须按用户定义的日期显示结果。

例如:

Today - should show today's results only
Yesterday - should show Yesterday's results only 

如何在存储过程中声明值以及如何在ssrs报告部分中实现?

我的CreateDate列会随着表格(FailedJobsInfo)的更新而不断变化。

这是我的存储过程:

ALTER PROCEDURE [dbo].[FailedJobsInfo] 
    @StartDate DATETIME
AS
    SELECT 
      [SQLServer]
      ,[JobName]
      ,[StepName]
      ,[FailureMessage]
      ,[RunDateTime]
      ,[RunDuration]
      ,[CreateDate]
    FROM 
      [dbo].[FailedJobsInfo]
    WHERE  
      CONVERT(varchar(20), CreateDate, 101) = CONVERT(varchar(20), GETDATE(), 101)

1 个答案:

答案 0 :(得分:0)

从您的SSRS报告开始。

1)创建一个带有标签和值的参数,如下所示

 Label        Value
 Today          0
Yesterday       1

2)让您的过程接受INT参数,如果用户选择Today,它会将0传递给存储过程,如果用户选择Yesterday,它将通过过程1到过程,这个整数值将从你的getdate()值中减去,避免时间部分。你需要做的如下:

ALTER PROCEDURE [dbo].[FailedJobsInfo] 
    @StartPeriod INT
AS
BEGIN
  SET NOCOUNT ON;

    SELECT 
      [SQLServer]
      ,[JobName]
      ,[StepName]
      ,[FailureMessage]
      ,[RunDateTime]
      ,[RunDuration]
      ,[CreateDate]
    FROM 
      [dbo].[FailedJobsInfo]
    WHERE  
      CAST(CreateDate AS DATE) = CAST(GETDATE() AS DATE) - @StartPeriod  --<-- 
END