【发布时间】:2017-07-10 12:57:20
【问题描述】:
我的报告中有一个参数@Year 和@Month,其中月份已分配值,例如一月(标签):1(值),二月:2,... 我的数据由具有过滤器的存储过程提供
WHERE (cal.CalendarYear = @Year) AND (cal.MonthId = @Month)
当我在参数设置中勾选“允许乘法值”时,它会返回错误
将数据类型 nvarchar 转换为 int 时出错。
如何选择所有值(默认)?
【问题讨论】:
-
您的过程不是为接受多个值而设计的。你应该重写它或重新设计你的报告,不要使用这个过程,而是使用代码
-
@sepupic 怎么实现?
-
@Year和@Month都是 int 类型?如果你想让它们接受多个值,它们需要是 varchar,然后你需要拆分它们并更改WHERE子句。 -
@Rokuto 我需要自己写分割函数吗?
-
@StanislavJirák 我认为拆分函数的例子很多,但是是的,你需要一个。编辑:我忘了。 SQL Server 2016有自己的拆分函数STRING_SPLIT。
标签: sql sql-server reporting-services sql-server-2016