有没有办法在我可以选择多个日期并将其作为我的参数传递给ssrs中的报告的存储过程。选择允许参数的多个值会给出一个下拉列表。但是我可以得到一个日历控件,我可以选择多个日期。
答案 0 :(得分:2)
SQL Server Reporting Services,从版本2008R2开始,没有内置此功能。我没有看过2012,但如果提供此功能,我会感到惊讶。
(您始终可以使用ReportViewer控件,URL访问或其他访问方法构建自己的界面来显示报告。)
答案 1 :(得分:0)
正如杰米所说,你真的不能这样做。根据我的经验,我遇到的“最佳”工作是将参数值作为一个文本字符串传递,并使用split函数在存储过程中的WHERE条件中进行解析。
USE [YOUR DATABASE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[split](
@delimited NVARCHAR(MAX),
@delimiter NVARCHAR(100)
) RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
AS
BEGIN
DECLARE @xml XML
SET @xml = N'<t>' + REPLACE(@delimited,@delimiter,'</t><t>') + '</t>'
INSERT INTO @t(val)
SELECT r.value('.','varchar(MAX)') as item
FROM @xml.nodes('/t') as records(r)
RETURN
END
您的存储过程中的参数将是这样的:
@Parameter VARCHAR(200)
然后你的存储过程中的where条件将是这样的
where convert(varchar(10), cast([YOURDATE] as date), 101) IN (select val from dbo.split(@Paramater,','))
我希望这有帮助!