iReport e SQL

4 respostas
powerguido

Bom dia!

Seguinte: Tenho uma consulta, que nela há 4 parâmetros(data inicial/data final/executor/status), mas nessa consulta os unicos parâmetros que são exigidos são as 2 datas.

Pergunta: Como fazer com que nesse meu relatório tenha essa variação, já que é preciso deixar o SQL pré-estabelecido :?:

Desde já agradeço pela atenção :!:

4 Respostas

brlima

É tudo uma questao de SQL meu caro.
vc pode deixar ele assim:

select coluna1
from tabela1
where coluna1 = $P{param1}
   AND coluna2 =  $P{param2}
   AND colunaOpt1 = NVL($P{paramOpt1},colunaOpt1)
   AND colunaOpt2 = NVL($P{paramOpt2},colunaOpt2)

Acho q eh essa a ideia… ainda nao precisei :smiley:
Agora passa como null o valor do parametro.

Abraços.

powerguido

Mas isso não quer dizer que no Banco de Dados aquela coluna estará NULA!

Fazendo isso, o SQL me retornaria tudo o que naquela coluna for nulo/vazio, e no meu caso eu quero é não ter essa clausula Where.

Entendeu? :roll:

brlima

acho que vc nao entedeu… o que eu tentei fazer é exatamente, se vc nao informar o parametro, ele assumi que a coluna é igual a ela mesma, dai se o parametro do relatorio for nulo, ele traz todo mundo, pq sempre uma coluna é igual a outra… Entendeu ?

Se bem q pensando bem, se a coluna ta nula ferro…rs…

Ah, vc pode usar assim:

AND (coluna1 = $P{param1} OR $P{param1} IS NULL)

sempre que vc passar nulo no parametro, ele ignora o filtro e traz todo mundo.

powerguido

Cara, não deu certo isso.
Ele não consegue interpretar o SQL … tentei até passar todo o SQL como parâmetro e tb não funcionou …

tô perdidinho … :shock:

Criado 12 de fevereiro de 2004
Ultima resposta 13 de fev. de 2004
Respostas 4
Participantes 2