Reporting services 在SSRS 2005的非查询可用值中,一个标签是否可能有多个值?

Reporting services 在SSRS 2005的非查询可用值中,一个标签是否可能有多个值?,reporting-services,parameters,Reporting Services,Parameters,参数-一个标签有多个值-可能吗 在非查询参数值中,一行中的一个标签是否可能有多个值, 这样我就可以在下拉列表中为多个值设置一个标签 基本上,如果我为每个标签写一个值,那么它可以正常工作,但问题是当我运行报告时,它会为每个名称显示复选框。用户勾选Site-1的所有值(如九个或十个值)看起来并不好。理想情况下,它应该是我想要的一个标签和多个值 工作正常:但这会在下拉菜单中显示一个很长的列表,因为我对site-1有更多的价值,这是我不想要的 Label Value ---

参数-一个标签有多个值-可能吗

在非查询参数值中,一行中的一个标签是否可能有多个值, 这样我就可以在下拉列表中为多个值设置一个标签

基本上,如果我为每个标签写一个值,那么它可以正常工作,但问题是当我运行报告时,它会为每个名称显示复选框。用户勾选Site-1的所有值(如九个或十个值)看起来并不好。理想情况下,它应该是我想要的一个标签和多个值

工作正常:但这会在下拉菜单中显示一个很长的列表,因为我对site-1有更多的价值,这是我不想要的

Label                Value
---------------------------
Site-1                 150
Site-1                 151
Site-1                 152
Site-1                 160 
Site-2                 161
Site-2                 162
在@Site中的querycolumnname也可以正常工作

在一行中显示所需结果,以便下拉菜单只能显示两个标签

Label                Value
---------------------------
Site-1                 150,151,152,160
Site-2                 161,162
它将在下拉框或组合框中显示一个标签和相关的多个值,在@Site中的查询ColumnName中则不起作用

对不起。Site是DB中的一个列名,@Site是一个变量名


Site-1和Site-2是下拉菜单的标签名称

基本问题是,当您将逗号分隔的值作为参数传递时,数据库会将其视为普通字符串,因此当需要int时,它不知道如何处理“150151152160”

处理这个问题的一个好方法是创建一个表值函数,当您传入逗号分隔的字符串时,该函数将返回一个表。我找到的最简单的方法是:

然后使用上述函数,查询中的该行变为:

ColumnName IN (SELECT number FROM split_csv(@Site))

如果您使用的是SQL Server 2008+,则可以使用更简单的表值参数。我将向您推荐相同的信息。

谢谢您的回复!!但是我刚刚找到了解决这个问题的另一种方法,就是使用SPLIT函数。工作正常。我现在感觉像在月球上:谢谢肯·怀特的编辑。希望我会逐渐学习如何准确地发布。干杯
ColumnName IN (SELECT number FROM split_csv(@Site))