FROM 子句中的 Eclipse BIRT 输入参数



我正在使用 eclipse birt 来制作报告。 我的目标是采用输入参数,选择用于我的数据集的不同表。我知道我可以使用这样的东西:

id = ?

在我的WHERE条款中。但我想完成这样的事情:

FROM CONCAT('tablexyz',?)

所以我可以为表做报告tablexyz17tablexyz18tablexyz19等。我尝试做这样的事情:

SELECT * FROM CONCAT('tablexyz',year)
WHERE year = ?

但它给了我一个错误。 任何想法我该如何做到这一点?

不能为此使用绑定变量。绑定变量旨在提供值(用于 varchar、数字、日期或任何表达式(,但您正在尝试更改表。

但是你可以使用这样的东西:

以适用于其中一个表的方式编写查询,例如

select * from tablexyz17

然后,在数据集的 beforeOpen 事件中,像这样更改查询文本(未经测试,但你明白了(:

// paramYear is the name of your dataset parameter
var tableName = 'tablexyz' + this.getInputParameterValue("paramYear");
this.query = this.query.replace('tablexyz17', tableName);

最新更新