首先,我将向您展示示例数据,预期输入和输出:
VALUE1 | QTY
-------------
111-01 | 5
111-02 | 3
111-03 | 2
112-01 | 4
来自用户的预期输入为VALUE1或VALUE1列表(SSRS多值,变量TEXT)。
预期输出例如是用户选择的每个VALUE1的QTY的SUM,但具有此条件
like SUBSTRING(VALUE1,1,3)+'%'
在这种情况下,用户选择111-01输出
VALUE1 | QTY
-------------
111 | 10
到目前为止,在IN语句中看起来像LIKE运算符。我发现只有解决方案是将参数从SSRS中分离出来并做一些循环(伪代码)
foreach @parameter in @parameter.Split
where VALUE1 like '@parameter[0]'+'%' or ...
我认为有一些更优雅的解决方案。无论如何,这个解决方案真的很慢。我对SSRS没有多少经验,所以也许在创建数据集之后进行一些分组可以是解决方案。
答案 0 :(得分:1)
您可能想尝试一下:
伪代码:
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)
尝试在表格上执行全文索引,性能可能会提高