Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-SSRS使用LIKE搜索值列表_Sql_Reporting Services_Ssrs 2008 - Fatal编程技术网

SQL-SSRS使用LIKE搜索值列表

SQL-SSRS使用LIKE搜索值列表,sql,reporting-services,ssrs-2008,Sql,Reporting Services,Ssrs 2008,首先,我将向您展示示例数据、预期输入和输出: VALUE1 | QTY ------------- 111-01 | 5 111-02 | 3 111-03 | 2 112-01 | 4 用户的预期输入为VALUE1或VALUE1列表(在SSRS多值、可变文本中)。 例如,预期输出是用户选择的每个值1的数量总和,但有此条件 like SUBSTRING(VALUE1,1,3)+'%' 在这种情况下,用户选择111-01输出为 VALUE1 | QTY ------------- 111

首先,我将向您展示示例数据、预期输入和输出:

VALUE1 | QTY
-------------
111-01 | 5
111-02 | 3
111-03 | 2
112-01 | 4
用户的预期输入为VALUE1或VALUE1列表(在SSRS多值、可变文本中)。
例如,预期输出是用户选择的每个值1的数量总和,但有此条件

like SUBSTRING(VALUE1,1,3)+'%'
在这种情况下,用户选择111-01输出为

VALUE1 | QTY
-------------
111    | 10
到目前为止,它看起来像是语句中的运算符。我已经找到了唯一的解决方案,那就是从SSR中分离参数,并做一些循环(伪代码)


我认为还有更优雅的解决方案。无论如何,这个解决方案真的很慢。我对SSR没有太多的经验,所以在创建数据集后进行一些分组可能是一个解决方案

您可能想试试:

  • 伪代码:

  • 尝试对表进行全文索引,性能可能会得到改进

  • foreach @parameter in @parameter.Split
    where VALUE1 like '@parameter[0]'+'%' or ...
    
    WITH    condition
          AS ( SELECT   SUBSTRING(c.SplitValue, 1, 3) Criteria
               FROM     dbo.fncSplit('111-1,112-2,113-3,114-4,115-1,116-1', ',') c
             )
    SELECT  SUM(t.QTY)
    FROM dbo.tblTest t
    INNER JOIN condition con ON con.Criteria = SUBSTRING(t.Value1, 1, 3)