Estou fazendo um relatorio que possui as tabelas receitas e despesas e ele está imprimindo até 3 vezes o mesmo registro.
Explicando melhor ,tenho a tablea receita e despesa, onde na tabela receita possui 3 registros no mes de agosto e na tabela despesa possui apenas 1
mas o ireport imprime 3 vezes esse registro da tabela despesa.
O problema está na sua query, não no iReport/JasperReports.
Você não deve estar fazendo todas as junções necessárias entre as tabelas que você está usando na cláusula FROM.
[]´s
a minha querry está assim:
select valDesp, datDesp, valRec, datRec from despesa, receita
where despesa.datDesp between ‘2010-01-31’ and '2010-12-31’
and receita.datRec between ‘2010-01-31’ and ‘2010-12-31’
e ainda naum consegui resolver o problema, vc fala que está na query, pesquisando por aí
vi que tem a clausula GROUP BY que diz que resolve este problema mas tbem naum resolveu
sobre as junção das duas tabelas, elas naum possuem nenhuma junção entre RECEITA e DESPESA.
O select SEMPRE vai gerar uma “tabela” com as colunas que você pede.
Como vc tem 1 registro na tabela despesa e vários na receita, o SGBD vai copiar os dados do registro da tabela despesa para gerar a tabela do SELECT.
Uma despesa e uma receita provavelmente estão relacionadas a alguma outra tabela não estão?
A receita e despesa estão ligadas com as tabelas tipo_receita, tipo_despesa e entidade.
Mas já tentei ligar as tabelas de receita e despesa com as outras e naum deu certo, continua aparecendo registro duplicado.
Por favor, detalhe então as tabelas entidade, receita e despesa.
tabela despesa: idDesp, idTipoDesp, idEnt, valDesp, datDesp
tabela receita: idRec, idTipoRec, ident, valRec, datRec
tabela entidade: idEnt, nomEnt, cpfEnt, cnpjEnt, idCid
Consegui resolver o problema, fiz dois SELECT, um para a tabela Receita e outro para a tabela Despesa.