2016-01-20 59 views
0

我有4个多值参数的一个报告,其中值填充基于被从第一参数选择的值:SSRS当没有值查询报告参数能见度

实施例:@Param1 = Forest, @Param2 = Lake , @Param3 = Fish

根据所选值,最后一个参数可能没有值。

实施例:@Param1 = Desert, @Param2 = Sand, @Param3 = Null (Empty)

在这种情况下,具有在报告服务@param3可见只是显示一个空参数框,并且用户开始怀疑是否有丢失的数据等。

我该如何让空的@Param3在t-sql代码中获得某种禁用?

这是@参数3查询:

SELECT DISTINCT Column3 
FROM TABLE 
WHERE Column1 = (@param1) AND 
Column2 = (@param2) 
ORDER BY Column3 

主要集查询有此断言:

FROM TABLE 
WHERE (Column1 = (@param1) or (@param1) is not null) AND 
     Column2 = (@param2) or (@param2) is not null) 
     AND (Column3 IN (@Param3) OR (@Param3) !='') AND 
(Column4 IN (@param4)) OR (@param4 !='') 
ORDER BY Month 

+0

我们不是盲目的,至少不是我们所有的人...... – jarlh

+0

不要忘记,不要盲目而不好笑......但是有这样的评论的其他论坛不要忘记,要么。 – Hankman3000

+0

在没有这些'#'的情况下对你的文章进行格式化,阅读起来会容易得多。不要让它很难帮助你。 – jarlh

回答

1

尝试增加一个“虚拟”的价值,您的脚本,只有它返回时,有没有其他可用的值:

SELECT DISTINCT Column3 
FROM TABLE 
WHERE 
    Column1 = (@param1) AND 
    Column2 = (@param2) 
UNION ALL 
SELECT 'No Value Needed' 
WHERE NOT EXISTS 
    (
    SELECT 1 
    FROM TABLE 
    WHERE 
     Column1 = (@param1) AND 
     Column2 = (@param2) 
) 
ORDER BY Column3 
+0

嗨@亨里克如果这个或任何答案已经解决了你的问题,请考虑[接受它](http://meta.stackexchange.com/q/5234/ 179419)通过点击复选标记。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。 – AHiggins

+0

HI @ Ahiggins实际上并没有解决问题,但我喜欢它,它解决了一半,仍然给出了错误,该参数丢失。 – Hankman3000