Tsql 添加允许“不在”的报告参数

Tsql 添加允许“不在”的报告参数,tsql,reporting-services,ssrs-2008,Tsql,Reporting Services,Ssrs 2008,我正在构建一个包含数据集查询的报表,如: 有4个工作代码,1、2、3、4 SELECT First, Last, WorkCode FROM MyTable WHERE Department = @Department 我们希望添加一个参数,允许用户在不使用工作代码2的情况下运行报告,因此查询为: SELECT First, Last, WorkCode FROM MyTable WHERE Department = @Department AND WorkCode <> 2 但

我正在构建一个包含数据集查询的报表,如:

有4个工作代码,1、2、3、4

SELECT First, Last, WorkCode
FROM MyTable
WHERE Department = @Department
我们希望添加一个参数,允许用户在不使用工作代码2的情况下运行报告,因此查询为:

SELECT First, Last, WorkCode
FROM MyTable
WHERE Department = @Department
AND WorkCode <> 2

但是我不知道如何在不生成两个单独的报告的情况下执行此操作。

根据第一次查询,可以对所有报告项使用一个数据集,也可以添加到一个或多个报告项以进一步缩小数据集的范围

因此,如果您想阻止工作代码2出现在Tablix中,您可以应用一个过滤器来检查=字段!工作代码。值为2


或者您可以基于此参数,即过滤器将为=字段!WorkCode.Value=参数!WorkCode.Value.

只需将另一个名为WorkCode的参数添加到报告中,并将变量名添加到查询中即可。在“报告参数属性”窗口的“可用值”下,选择“指定值”或“从查询中获取值”

下面是您使查询的最后一行看起来像什么:

AND WorkCode <> @WorkCode
如果WorkCode参数是可选的,请在属性窗口中选中允许空值复选框,并在查询中执行以下操作:

 AND ((WorkCode NOT IN @WorkCode) OR (ISNULL(@WorkCode, '') = ''))

你的意思是说,但我不知道如何做到这一点,不作出两个单独的报告?啊,很好的捕获,谢谢。我已经纠正。
 AND ((WorkCode NOT IN @WorkCode) OR (ISNULL(@WorkCode, '') = ''))