Tsql 基于多值参数的查询变更
我有一个来自报告的多值参数,它将相应地隐藏或显示列。数据集调用相应的存储过程:Tsql 基于多值参数的查询变更,tsql,reporting-services,Tsql,Reporting Services,我有一个来自报告的多值参数,它将相应地隐藏或显示列。数据集调用相应的存储过程: CREATE PROCEDURE RandomProc @Server NVARCHAR(100) AS SELECT t1.Cluster, t2.Server, t2.ServerIP FROM Table1 t1 INNER JOIN Table2 t2 ON t1.ID = t2.ID WHERE t1.Cluster LIKE '%' + @Server + '%
CREATE PROCEDURE RandomProc @Server NVARCHAR(100)
AS
SELECT
t1.Cluster,
t2.Server,
t2.ServerIP
FROM
Table1 t1
INNER JOIN Table2 t2
ON t1.ID = t2.ID
WHERE
t1.Cluster LIKE '%' + @Server + '%' OR
t2.Server LIKE '%' + @Server + '%' OR
t2.ServerIP LIKE '%' + @Server + '%'
如果我要从报告中取消选中Cluster,那么除了从报告中隐藏Cluster列之外,还应该从SELECT和WHERE子句中删除t1.Cluster。其他值也是如此
这可能吗?这是在查询级别还是通过SSR完成的
编写多个查询是不可行的,因为在多值参数中有太多的选项可供选择 我将创建两个附加参数,并将它们添加到查询和SSRS中以过滤数据集:
@Cluster NVARCHAR(100)
,@ServerIP NVARCHAR(100)
您可以使用动态SQL在SELECT中添加/删除列;但是,如果您的列消失或出现,SSRS报告将无法正常工作
更新:
如何在SSRS中逐步设置条件列可见性: