Пишу отчет в BIRT. У меня есть два входных параметра в моем наборе данных.
Второй параметр я бы хотел использовать дважды в предложении where. Я обнаружил, что могу сделать это, используя предложение with. Обратите внимание, что это база данных postgresql, поэтому мне не нужен from dual.
Мой sql выглядит следующим образом:
with "params" as (select ? as "sname", ? as "ename")
select "user"."fullName", "user"."address1", "user"."address2", "user"."city", "provinces"."abbreviation", "user"."postalcode", "client"."companyName"
from "user", "params"
LEFT JOIN "client" on "user"."client" = "client"."id"
LEFT JOIN "provinces" on "user"."province" = "provinces"."id"
WHERE "user"."fullName" >= "params"."sname" and (("user"."fullName" <= "params"."ename") or ("params"."ename" =''))`
Когда я пытаюсь запустить это или просмотреть результаты на экране редактирования набора данных BIRT, я получаю следующую ошибку:
Произошла ошибка при выполнении отчета. at .... Причина: org.eclipse.birt.report.data.adapter.api.AdapterException: во время обработки возникло исключение. Подробности см. в следующем сообщении: Не удалось подготовить выполнение запроса для набора данных: пользователь не может получить метаданные результирующего набора. org.eclipse.birt.report.data.oda.jdbc.JDBCException: оператор SQL не возвращает объект ResultSet. Ошибка SQL № 1: ОШИБКА: неверная ссылка на запись FROM для таблицы «пользователь» Подсказка: существует запись для таблицы «пользователь», но на нее нельзя сослаться из этой части запроса. Позиция: 252;
Я не могу пройти мимо этого. Из всего, что я видел, это должно работать.
with params (sname, ename) as (values (?, ?) ) ...
- person a_horse_with_no_name   schedule 29.03.2016