在传递中使用 cognos report studio 提示 SQL

Using cognos report studio prompts in pass through SQL

我在 Cognos Report Studio 中使用直通 SQL 语法创建了一个报表。我的查询包括几个常见的 table 表达式。如何将提示传递给我的查询?我想使用一个 可选日期过滤器 ,然后在两个 cte:s 中使用。然后是另一个 必填和多选文本过滤器 ,将在最终 select 语句中使用。

以下是我的查询的简化版本:

WITH in_date AS
    (SELECT * FROM in_dates WHERE in_date > optional_date_prompt),

out_date AS
    (SELECT * FROM out_dates WHERE out_date > optional_date_prompt),

organisation AS
    (SELECT * FROM organisation)

-- some joins and unions later i end up with this table
SELECT * FROM final_table
WHERE organisation_name = 'required_text_prompt' OR
    organisation_name = 'optional_text_prompt_value'

将提示用作报告页面上应用的常规 cognos 过滤器不是一个选项,因为报告需要几个小时才能完成 运行。

要将参数直接传递给 SQL,请使用宏。名为 org 的字符串提示的提示宏如下所示:

#prompt('org','string')#

第一个参数是提示名称,第二个参数是类型。这是需要指定的最少参数量。还有其他可选参数,例如也可以指定默认值。您可以查阅 Cognos 文档以获取更多选项。

您将提示宏放在 WHERE 子句中:

WHERE organisation_name =  #prompt('org','string')#

Cognos 将看到宏并在将 SQL 发送到数据源之前对其进行解析。