BIRT: Использование параметра в группе частью SELECT

Я схожу с ума от этой проблемы:

У меня есть несколько отчетов Oracle SQL, чтобы переработать их с помощью BIRT. Первые вещи работали отлично, но теперь в отчете есть SELECT, который использует GROUP BY, и по какой-то причине он не работает в BIRT...

Всегда возникает ошибка типа «Предложение GROUP BY не является выражением GROUP BY.

Кажется, проблема заключается в параметре, который я использую в части GROUP BY, потому что, когда я удаляю параметр и передаю любое значение в запросе напрямую, он работает.

кто-нибудь знает, как решить эту проблему?

Привет


person Dominik Kirschenhofer    schedule 29.11.2011    source источник
comment
Кажется, я мог найти обходной путь: stackoverflow.com/questions/6059412/   -  person Dominik Kirschenhofer    schedule 29.11.2011


Ответы (2)


Проблема, похоже, в том, что мне пришлось добавить один и тот же параметр дважды (один ? для выбора, один для группировки), а BIRT не заменяет ? со своим значением, но с использованием параметров SQL, и они отличаются также, когда они указывают на одну и ту же цель. Или что-то подобное. Использование «временной таблицы», как описано в связанной теме ( stackoverflow.com/questions/6059412/… ), у меня сработало!

person Dominik Kirschenhofer    schedule 21.06.2012

Я бы предложил оставить SQL без выражения GROUP BY и выполнить группировку в таблице или диаграмме, отображающей данные. Когда вы добавляете группировку в таблицу, вы должны иметь возможность определить группу по выражению примерно так:

row[params["MY_PARAMETER"].value]

Передача параметра в группу Oracle будет затруднена, потому что только сгруппированные столбцы могут появляться непосредственно в предложении SELECT (все, что не входит в группу, может появляться только внутри групповой функции, такой как SUM, MIN, MAX, COUNT и т. д.), поэтому вам нужно будет изменить SQL на лету, чтобы добавить/удалить столбцы в предложении SELECT. Это возможно, но сложно.

person John Weber    schedule 05.12.2011
comment
TY, но выбрать не было проблемой. Он работал нормально, когда я запускал его в SQL Developer. Это просто не работало в BIRT и с ? параметры. - person Dominik Kirschenhofer; 06.12.2011