【问题标题】:Pentaho Report Designer (PRD): Use parameter in select clausePentaho Report Designer (PRD):在选择子句中使用参数
【发布时间】:2013-01-17 01:47:01
【问题描述】:

在我正在使用的报表中,我需要显示一个数据库表的四列信息。该表的前三列是 SEX、AGE 和 NAME。其他 N 列(N 等于 100!)是问题,表格的每一行都表示该人对该问题的回答:

SEX | AGE | NAME | Q1 | Q2 | Q3 | ... | Q100

在我的报告中,我需要显示其中的四列,其中前三列始终相同,第四列根据用户选择的选项而有所不同:

SEX | AGE | NAME | <QUESTION_COLUMN>

到目前为止,我已经创建了一个下拉参数(填充“Q1”、“Q2”、“Q3”等),用户可以在其中选择他想要比较的问题。我尝试在报告查询的 SELECT 子句中使用所选选项的值(例如“Q1”),但没有成功:

SELECT sex, age, name, ${QUESTION} FROM user_answers

Pentaho Report Designer 没有显示任何错误,它只是没有显示 question 列的任何值(其他列 - sex、age 和 name - 总是返回它们的值)

所以,我想请你知道:

  1. 我可以这样做吗?我的意思是,在 SELECT 子句中使用参数?
  2. 根据参数有没有其他方法有这个“通配符”列?

提前致谢! 布鲁诺·伽马

【问题讨论】:

    标签: sql pentaho pentaho-report-designer


    【解决方案1】:

    你可以使用pentaho报表设计来设计。

    1. 首先,您必须在参数上构建参数“QUESTION” 例如:SELECT question FROM user_ansewers order by XXXX
    2. 你可以使用sql

      SELECT sex, age, name,question FROM user_answers where question= ${QUESTION}

    3. 最后,可以看到“下拉”实现选择

    【讨论】:

      【解决方案2】:

      我使用 SQL 服务器作为数据库。这个问题是这样解决的:

      execute('SELECT sex, age, name, '+${QUESTION}+' as Q1 FROM user_answers')

      请注意,${QUESTION} 必须是 user_answers 的列名。在此示例中,我使用了一个文本框参数名称 QUESTION,其中列名称作为输入给出。如果输入参数不是文本框,则可能需要其他编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多