iReport

7 respostas
C

Ola pessoal,

tenho uma query no meu relatorio que tem um GROUP BY,
e esta trazendo os resultados corretos, porem queria fazer uma filtragem sob a data de cadastro porem este campo esta na view na qual eu faco a consulta porem nao eh um field que eu trago no select, estou tendo dificuldade para filtrar por esse campo. Alguem pode me ajudar?

QUERY:

SELECT 
  origem, 
  produto, 
  origemid,
  SUM(quantidade) AS quantidade
FROM 
  vnestoque
WHERE
  direcao = 'entrada'
GROUP BY
  origem, 
  origemid,
  produto
ORDER BY
  origem,
  produto

e a expressao de filtragem:

Boolean.valueOf(($P{inicio}.before( datacadastro ) && $P{termino}.after( datacadastro )) &&
($P{origemid}.intValue() == -1 || $F{origemid}.intValue() == $P{origemid}.intValue()))

7 Respostas

M

voce pode fazer a filtragem diretamente no select atravéz de um parametro…

CarlosEduardoDantas

a data de cadastro tem que ser retornada na view vnestoque …

ou você faz um join entre a view e a tabela que possui a data de cadastro

C

Carlos,

Se eu trousser a data o Group By nao ira funcionar porque datas diferentes nao agruparam por produtos como acontece na consulta acima.

Entendeu? O Pronblema é justamente este.

Henrique Nunes

C

Miguel Como faco para colocar a filtragem na Clausula WHERE da consulta com o paramentro?

WHERE
datacadastro BETWEEN $P{inicio} AND $P{termino}

C

Faça um sub-select, mais ou menos assim

SELECT 
  origem, 
  produto, 
  origemid,
  SUM(quantidade) AS quantidade
FROM 
  vnestoque
WHERE
  direcao = 'entrada'
  dataCadastro = (select data from DataCadastro)
GROUP BY
  origem, 
  origemid,
  produto
ORDER BY
  origem,
  produto
C
SELECT 
  origem, 
  produto, 
  origemid,
  SUM(quantidade) AS quantidade
FROM 
  vnestoque
WHERE
  direcao = 'entrada' AND (datacadastro BETWEEN $P{inicio} AND $P{termino} )
GROUP BY
  origem, 
  origemid,
  produto
ORDER BY
  origem,
  produto

Fiz dessa forma e funcionou, mesmo assim obrigado a todos.

CarlosEduardoDantas

colix:
Carlos,

Se eu trousser a data o Group By nao ira funcionar porque datas diferentes nao agruparam por produtos como acontece na consulta acima.

Entendeu? O Pronblema é justamente este.

Henrique Nunes

ah, entao a data cadastro já vem na view vnestoque (imagino que com esse nome deva ser uma view)

é só fazer como fez com os parametros na pergunta que fez ao miguel.

Criado 6 de janeiro de 2009
Ultima resposta 6 de jan. de 2009
Respostas 7
Participantes 4