【问题标题】:SSRS multi value parameter - can't get it to workSSRS 多值参数 - 无法正常工作
【发布时间】:2019-11-05 19:01:01
【问题描述】:

首先,这是我第一次尝试多选。我进行了很多搜索,但找不到适合我的答案。

我有一个 postgresql 查询,它在 (_revision_key) 中有 bg.revision_key,它包含参数。附带说明一下,我们在查询中使用下划线命名了所有参数,它们都可以工作,它们是 SSRS 中的单选。

在我的 SSRS 报告中,我有一个名为 Revision Key Segment 的参数,它是多选参数。我勾选了允许多值,在可用值中我有值字段指向数据集中的修订键。

在我的数据集参数选项中,我有参数值 [@revision_key]

在我的共享数据集中,我的参数也设置为允许多值。

由于某种原因,我似乎无法让多选工作,所以我一定是在某个地方遗漏了一些东西,但我已经没有想法了。

【问题讨论】:

  • 对单值参数有效吗?您的查询如何处理多个参数?
  • 是的,作为单值参数可以正常工作,所以不明白为什么它不适用于多参数。
  • 如何处理查询中参数提供的多个值?不起作用 = 没有返回结果或有错误消息?
  • 如果我输入查询 bg.revision_key in (1, 2, 3, 4) 例如,我会得到正确的结果。我一定没有设置参数来正确传递多个值。
  • 当然,硬编码值会起作用..为了报告工作..你传入参数..你是怎么做到的? bg.revision_key in (@revision_key)???

标签: postgresql reporting-services


【解决方案1】:

与 SQL Server 不同,当您使用 ODBC 连接连接到数据库时,参数支持是不同的。您不能使用命名参数,而必须使用 ? 语法。

为了容纳多个值,您可以将它们连接成一个字符串并使用like 语句来搜索它们。然而,这是低效的。另一种方法是使用函数将值拆分为内联表。

在 PostgreSQL 中,您可以使用如下表达式:

inner join (select CAST(regexp_split_to_table(?, ',') AS int) as filter) as my on my.filter = key_column

然后在数据集属性中,在参数选项卡下,使用如下表达式连接值:

=Join(Parameters!Keys.Value, ",")

换句话说,报告将值连接成一个逗号分隔的列表。数据库将它们拆分为一个整数表,然后对这些值进行内部连接。

【讨论】:

  • 昨天晚些时候,需求发生了变化,因此不再需要多选。说有下一次我要试试学习。
  • 很高兴知道您和其他任何偶然发现此问题的人 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 2014-02-22
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多