0

在我正在使用的报表中,我需要显示一个数据库表的四列的信息。该表的前三列是 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 没有显示任何错误,它只是没有显示问题列的任何值(其他列 -性别、年龄和姓名- 总是返回它们的值)

所以,我想让你知道:

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

提前致谢!布鲁诺·伽马

4

2 回答 2

1

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

执行('选择性别,年龄,姓名,'+${QUESTION}+' as Q1 FROM user_answers')

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

于 2013-06-17T06:33:21.903 回答
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. 最后,您可以看到“下拉”以实现选择

于 2013-04-26T08:12:38.327 回答