Входной параметр Eclipse BIRT в предложении FROM - PullRequest
0 голосов
/ 11 мая 2018

Я использую Eclipse Birt, чтобы сделать свои отчеты.Моя цель - взять входной параметр, чтобы выбрать другую таблицу, используемую в моем наборе данных.Я знаю, что могу использовать что-то вроде этого:

id = ?

В моем предложении WHERE.Но я хотел бы сделать что-то вроде этого:

FROM CONCAT('tablexyz',?)

Так что я могу сделать свой отчет для таблиц tablexyz17, tablexyz18, tablexyz19 и т. Д. Я пыталсясделать что-то вроде этого:

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

Но это дало мне ошибку.Любые идеи, как я могу сделать это?

1 Ответ

0 голосов
/ 14 мая 2018

Вы не можете использовать переменные связывания для этого.Переменные связывания предназначены для предоставления значений (для выражений varchar, number, date или любых других), но вы пытаетесь изменить таблицу.

Но вы можете использовать что-то вроде этого:

Напишите свойзапрос таким способом, который работает для одной из таблиц, например,

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);
...