【发布时间】:2021-09-01 16:13:01
【问题描述】:
上个月,我在各种报告中都遇到了同样的问题。在此之前,我对多值参数没有任何问题。我必须小心我在这里分享的内容,因为这些是我正在为我的工作场所编写的报告。
基本上,我的查询中返回了超过 28000 条不带参数的记录。我在
中的查询中添加了@ManagingDistrictWHERE MNG_DIST_CD IN (@ManagingDistrict)
在 SSRS 中,我将参数标记为“允许多个值”,并在可用值中添加了 01、02、03、04、05、06、07、99,它们是我们的区号。
我跑了报告,只得到了 1 个区,最后一个。 所以我尝试将相同的连接语句添加到我的报告属性>变量选项卡中:
如您所见,它显示:01,02,03 但报告仅显示区 03。我尝试添加更多区,但它始终是列表中的最后一个。我什至尝试过
MNG_DIST_CD IN (SELECT VALUE FROM STRING_split(@ManagingDistrict , ','))
在我的查询中,但不断收到错误消息,指出我的 string_split 函数中有太多参数。
有什么建议吗?我已经阅读了 100 篇关于这个主题的帖子,我发现大多数帖子要么涉及 udf,要么作者忘记使用 in 子句。
这是我查询中的实际 where 语句:
WHERE CAT_CD IN (1,2) AND SPEC_SQ IN (24,31,68,213) AND SMPL_DT BETWEEN @StartDate AND @EndDate and (@ManagingDistrict = '' OR MNG_DIST_CD IN (@ManagingDistrict));
我最初有这个语句并且只设置了“允许多个值”的参数属性,但收到错误消息“非布尔类型的表达式......”
【问题讨论】:
标签: visual-studio tsql reporting-services