【问题标题】:passing Multiple string values in SSRS using stored procedure使用存储过程在 SSRS 中传递多个字符串值
【发布时间】:2013-02-28 15:41:08
【问题描述】:

我对存储过程以及将它们与 SSRS 一起使用相当陌生。

我想使用带有允许多个值的参数的存储过程创建一个简单的 SSRS 报告(来自单独的过程的结果)

我有 2 个简单的存储过程如下。

Create Procedure WO
@STARTDATE datetime, @ENDDATE datetime, @DISTRICT varchar(25)
AS
SELECT A.WO, A.CUST, A.DISTRICT, A.COMPL_DATE
FROM WORK_ORDERS A
WHERE A.COMPL_DATE between (@STARTDATE) and (@ENDDATE) 
and A.DISTRICT_NAME in (@DISTRICT)

Create Procedure DISTRICT
AS
SELECT B.DISTRICT_NAME
FROM DISTRICTS B

在我的 SSRS 报告中,我使用“DISTRICT”参数和 DISTRICT 程序中的可用值(允许多个值)使用 DISTRICT 程序的结果来报告 WO 程序。我还在 WO 程序的参数中使用了 DISTRICT 参数。

这在选择一个区时有效,但在我选择多个区时无效。有人愿意帮忙吗?

【问题讨论】:

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


    【解决方案1】:

    如果我没记错的话,问题在于处理字符串参数@district - 假设选择了 4 个区,SSRS 传递的内容可能看起来像“N,S,E,W” - 然后存储的过程将出来为: ...A.District_Name in ('N,S,E,W')... 只有在有一个地区名称 'N,S,E,W' 时才会返回一个值。因此,我认为您需要拆分传入的值并将其重新组合为“N”、“S”、“E”、“W”。不幸的是,SQL Server 中没有 SPLIT 函数,因此您要么必须编写 UDF(有几个帖子可用),要么进行 CLR 调用。

    这是一个聪明(未经测试)的想法 - 尝试 Replace(@District,',',''',''') (我想我的引号是对的......)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      相关资源
      最近更新 更多