【问题标题】:Changing query based on multi-value parameter基于多值参数更改查询
【发布时间】:2015-12-02 04:08:00
【问题描述】:

我有一个来自报告的多值参数,它将相应地隐藏或显示列。数据集调用对应的存储过程:

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。对于其他值,依此类推。

这可能吗?这应该在查询级别还是通过 SSRS 完成?

编写多个查询是不可行的,因为在多值参数中有太多选项可供选择。

【问题讨论】:

    标签: tsql reporting-services


    【解决方案1】:

    我将创建两个附加参数并将它们添加到查询和 SSRS 以过滤数据集:

    @Cluster NVARCHAR(100)
    ,@ServerIP NVARCHAR(100)
    

    您可以使用动态 SQL 在 SELECT 中添加/删除列;但是,如果您的列消失或出现,SSRS 报告将无法正常工作。

    更新: 逐步如何在 SSRS 中设置条件列可见性: http://bhushan.extreme-advice.com/conditionally-setting-column-visibility-in-ssrs/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2018-04-08
      相关资源
      最近更新 更多