iReport

É possível deixar um parâmetro em uma cláusula group by no iReport?
Dá erro quando executo o relatório.

Erro:
ORA-00979: not a GROUP BY expression

Mas todos os campos estão no group by.

Alguém pode me ajudar???

Por favor coloque sua expressão inteira para podermos te ajudar!

Estou com o mesmo problema…

Tenho uma query que se eu colocar os valores manualmente no group by ela executa… já se eu deixar o parametro $P{P_DT_COMPETENCIA} acontece o mesmo erro do amigo.

ORA-00979: not a GROUP BY expression

Alguém sabe informar algo?

Ahn… Eu sou absoluta e totalmente contra deixar o relatório conectar-se ao banco de dados.
Em que momento, dentro de uma arquitetura em camadas, um relatório (que é apresentado ao usuário) tornou-se parte da camada modelo?
É muito mais simples fazer pela aplicação e apenas enviar tudo pronto para ele (através de JRDataSource).

Realmente amigo, mas infelizmente não posso mudar a arquitetura dos relatórios na empresa em que trabalho.

Assim, no momento procuro solucionar este problema com o que tenho mesmo.

Valeu pela ajuda.

[quote=renaiosPJ]É possível deixar um parâmetro em uma cláusula group by no iReport?
Dá erro quando executo o relatório.

Erro:
ORA-00979: not a GROUP BY expression

Mas todos os campos estão no group by.

Alguém pode me ajudar???[/quote]

Olha por conhecimento SQL não de IReport…

manda o SQL que é executado

todos os campos devem estar no group by até mesmo os do order by …

Muitas vezes o pessoal coloca os campos de exibição e se esquecem dos que não são expostos.

[quote=morgoth]Realmente amigo, mas infelizmente não posso mudar a arquitetura dos relatórios na empresa em que trabalho.

Assim, no momento procuro solucionar este problema com o que tenho mesmo.

Valeu pela ajuda.[/quote]
Pode sugerir tal mudança.
Pegue a query, jogue no editor de SQL preferido e veja se ocorre o mesmo erro.
Não creio que seja o parâmetro que está causando isto, embora possa ser.

O SQL está correto, é tanto que quando o executo sem os parametros o relatório funciona normalmente.

Em resumo a sql é assim

SELECT …
,Months_Between( Trunc(To_Date( $P{P_DT_COMPETENCIA}, ‘YYYYMM’), ‘MM’ ), Trunc( VFU.DT_VENDA, ‘MM’ ) ) AS “Nº Parcela”
FROM…
GROUP BY…

,Months_Between( Trunc(To_Date( $P{P_DT_COMPETENCIA}, ‘YYYYMM’), ‘MM’ ), Trunc( VFU.DT_VENDA, ‘MM’ ) )

Na query acima se eu trocar o $P{P_DT_COMPETENCIA} por ‘201205’ por exemplo o relatório funciona normalmente…

Caso eu deixe o parametro acontece o erro ORA-00979

E, esse parâmetro, $P{P_DT_COMPETENCIA}, é do tipo? String, Date? Long? Double? Float?

String! Mas também já tentei mudar para Date.

E o formato é compatível com o pattern que está passando (‘YYYYMM’)?
Desculpe se pareço óbvio, mas isso pode interferir de maneira negativa na query.