参数 - 一个标签的多个值 - 可能吗?
对不起我修改过的问题.....
我有问题要问,...... 在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,那么它可以工作 但不是一行中的两个或多个值, 为什么不可能?如果是,那怎么样?
请帮助!!!
答案 0 :(得分:0)
仅Right Click
在Report Data
窗口下Parameters
窗口中的allow multiple values
参数,并选中SELECT * FROM ..
WHERE (Site IN (@getDisease))
的复选框,如下所示
这就是我之前所说的,你需要把你的列名放在一组像这样的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);
*注意:此答案仅适用于互斥的值,如果两个集合都包含相同的值,则会出现问题。
- 希望这可以让你朝着正确的方向前进。我发现许多报告服务技巧需要逆向工程或至少有一些反向思维。
欢呼声, 迈克尔