我从表中获取数据,并通过存储过程写入报告。在报告部分,它必须按用户定义的日期显示结果。
例如:
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)
答案 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