使用cognos report studio提示传递SQL

时间:2016-12-28 19:56:25

标签: sql-server cognos

我使用传递SQL语法在Cognos Report Studio中创建了一个报表。我的查询包括几个常见的表表达式。如何将提示传递给我的查询?我想使用一个可选日期过滤器,然后在两个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'

要使用提示作为报表页面上应用的常规智能过滤器不是一个选项,因为报表需要数小时才能运行。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

Cognos将在将SQL发送到数据源之前查看宏并解析它。