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

Побърквам се с този проблем:

Имам някои Oracle SQL-Reports, за да ги преработя с 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