在我正在使用的报告中,我需要显示数据库表的四列信息。表格的前三列是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报表设计器没有显示任何错误,它根本没有显示问题列的任何值(其他列 - 性别,年龄和名称 - 始终返回其值)
所以,我希望你知道:
提前致谢! 布鲁诺·加马
答案 0 :(得分:1)
您可以使用pentaho报告设计进行设计。
SELECT question FROM user_ansewers order by XXXX
你可以使用sql
SELECT sex, age, name,question FROM user_answers
where question= ${QUESTION}
最后,您可以看到“下拉”以实现选择
答案 1 :(得分:1)
我使用SQL服务器作为数据库。这个问题解决了这样的问题:
执行('SELECT sex,age,name,'+ $ {QUESTION} +'作为Q1 FROM user_answers')
请注意$ {QUESTION}必须是user_answers的列名。在这个例子中,我使用了一个文本框参数名称QUESTION,其中列名作为输入。如果输入参数不是文本框,则可能需要其他编码。