如何在ssrs 2005报告中的非查询可用值中为多个值分配一个相同的标签?

时间:2014-01-07 21:51:52

标签: sql sql-server reporting-services

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

对不起我修改过的问题.....

我有问题要问,...... 在SSRS 2005中,是否可以在非查询的可用值中为ONE标签设置多个值?我想在一行中加入字段值,如

Works: (But this bring a long list in drop down menu - which i donot want)

Label                Value
---------------------------
Site-1                 150
Site-1                 151 
Site-2                 152
Site-2                 153


Required result (Which i want - in one line)

Label                Value
---------------------------
Site-1                 150,151
Site-2                 152,153
(which will bring one label and related multi-value in drop down or combo box.
But the problem is that ColumnName IN (@Site) does not work with multi-value.)

问题的更多描述:

假设我有一个字段/列

 Name = Site
 Value = C150,C151, C152, C153

我想用

报告下拉菜单
 C150,C151(as Site-1) & C152,C153(as Site-2)

所以我创建了参数,即@getSite并将值设置为 报告中的多值

 Label                       Value
 ---------------------------------------------
 Site-1                      (150,151)
 Site-2                      (152,153)

并将我的参数设为@getSite:= Parameters!@getSite.Value 和Query我写的,

SELECT  * FROM ..
WHERE Site IN (@getDisease)

但毕竟这些,我的报告结果是空的,字面上没有结果。 看起来如果我只选择一个值作为Site-1 = 150,那么它可以工作 但不是一行中的两个或多个值, 为什么不可能?如果是,那怎么样?

请帮助!!!

2 个答案:

答案 0 :(得分:0)

Right ClickReport Data窗口下Parameters窗口中的allow multiple values参数,并选中SELECT * FROM .. WHERE (Site IN (@getDisease)) 的复选框,如下所示

enter image description here

这就是我之前所说的,你需要把你的列名放在一组像这样的paranthesis中

{{1}}

答案 1 :(得分:0)

我一直在研究这个问题,我想我终于明白了......

基本上你需要在SELECT语句中使用向后case语句,将它放在派生查询中,然后在外部WHERE子句中引用它。

SQL:

SELECT * FROM 
(
SELECT
Label
, value
, CASE WHEN [value] IN (150,151) THEN 'site-1' WHEN [value] IN (152,153) THEN 'site-2' END AS [grouped_values]
)
WHERE grouped_values IN (@getSite);

*注意:此答案仅适用于互斥的值,如果两个集合都包含相同的值,则会出现问题。

- 希望这可以让你朝着正确的方向前进。我发现许多报告服务技巧需要逆向工程或至少有一些反向思维。

欢呼声, 迈克尔