Relatório iReport

4 respostas
R

preciso criar um Query dentro do iReport para pegar os dados de 2 tabelas.

Estou usando desta forma.

select id_cidade, nome_cidade, sigla from cidade, estado where id_cidade = $P!{cId}

porem ao digitar o id_cidade (parametro), ele me joga a cidade referente ao Id, porem não acontece o mesmo ao campo sigla.

Sempre joga a sigla PR, sendo que a cidade esta cadastrado em outra sigla.

4 Respostas

ErickRAR

Provavelmente cidade está relacionado com estado, certo? como você não explicou qual você quer, ele está pegando aleatoriamente.
Se não tiver essa relação , na tabela cidade você coloca uma coluna fk_estado ,para saber de qual estado ele é e mude a consulta

select id_cidade, nome_cidade, sigla from cidade, estado where id_cidade = $P!{cId} and fk_estado = id_estado

R

ErickRAR:
Provavelmente cidade está relacionado com estado, certo? como você não explicou qual você quer, ele está pegando aleatoriamente.
Se não tiver essa relação , na tabela cidade você coloca uma coluna fk_estado ,para saber de qual estado ele é e mude a consulta

select id_cidade, nome_cidade, sigla from cidade, estado where id_cidade = $P!{cId} and fk_estado = id_estado

eu coloquei conforme você orientou e apresentou o seguinte erro.
Error: postgresql.util.PSQLException:ERRO:coluna "fk_estado"não existe

Segue o código das minhas tabelas no banco.
Estado:

CREATE TABLE estado ( id_estado serial NOT NULL, sigla character varying(2) NOT NULL, CONSTRAINT chave_primaria_estado PRIMARY KEY (id_estado) )

Cidade:

CREATE TABLE cidade
(
  id_cidade serial NOT NULL,
  id_estado integer,
  nome_cidade character varying(50) NOT NULL,
  CONSTRAINT cidade_pkey PRIMARY KEY (id_cidade),
  CONSTRAINT cidade_id_estado_fkey FOREIGN KEY (id_estado) REFERENCES estado (id_estado) 
)
ErickRAR

“fk_estado” foi só um exemplo. Na sua tabela cidade, a coluna que referencia a tabela estado chama-se id_estado, então coloque isso na consulta:

R

[quote=ErickRAR]“fk_estado” foi só um exemplo. Na sua tabela cidade, a coluna que referencia a tabela estado chama-se id_estado, então coloque isso na consulta:

Cara você é um gênio, salvou meu trabalho de hoje vou ter que fazer isso para algumas outras tabelas, mas vou tentando me virar aqui.

Obrigado man.

Criado 14 de agosto de 2014
Ultima resposta 14 de ago. de 2014
Respostas 4
Participantes 2