Query utilizando !Report

2 respostas
R

Boa tarde galera… estou fazendo um relatório utilizando !Reports, só que eu não sei como faço para esta query ficar do jeito que eu faço na minha classe MovimentaDao.

Exemplo na minha Classe MovimentaDao:

public List<Pessoal> findByAll() throws Exception {

		open();
		List<Pessoal> listaPessoal = new ArrayList<Pessoal>();
		stmt = con.prepareStatement("select * from pessoal");
		rs = stmt.executeQuery();

		while (rs.next()) {

			Pessoal p = new Pessoal("dados", new ArrayList<Movimenta>());

			listaPessoal.add(p);

		}

		for (Pessoal p : listaPessoal) {

			stmt = con
					.prepareStatement("select * from movimenta where codpes = ? and dtdev is null");
			stmt.setString(1, p.getCodPessoal());
			rs = stmt.executeQuery();

			while (rs.next()) {

				Movimenta m = new Movimenta("dados");

				p.getListaMovimenta().add(m);

			}

		}

		close();
		return listaPessoal;

O código acima me retorna o Usuário e abaixo todas as movimentações do mesmo.
Alguém sabe me dizer como faço para o Relatório gerado no !Report ficar igual ao gerado na minha Classe.

Abaixo está uma query que eu já testei, só que ela me trás o resultado errado…

Vem o nome da Pessoal depois a movimentação… aí trás o nome de outra pessoa e somente 1 movimentação… não trás todas as movimentações ligadas à ela.

select * from pessoal p inner join movimenta m where p.codpes = m.codpes and m.dtdev is null

Obrigadooooooo

2 Respostas

aprendizweb

Bom pelo o que entendi vc tem uma classe pessoa e outra movimentação, se for isso basta vc agrupar os dados da movimentação pelo nome da pessoa:

SELECT movimenta."valor1" AS movimenta_valor1, movimenta."valor2" AS movimenta_valor2, movimenta."valo3" AS movimenta_valor3, pessoa."nome" AS pessoa_nome FROM "public"."pessoa" pessoa INNER JOIN "public"."movimenta" movimenta ON movimenta."idmovimenta" = movimenta."idpessoa_movimenta"

R

aprendizweb:
Bom pelo o que entendi vc tem uma classe pessoa e outra movimentação, se for isso basta vc agrupar os dados da movimentação pelo nome da pessoa:

SELECT movimenta."valor1" AS movimenta_valor1, movimenta."valor2" AS movimenta_valor2, movimenta."valo3" AS movimenta_valor3, pessoa."nome" AS pessoa_nome FROM "public"."pessoa" pessoa INNER JOIN "public"."movimenta" movimenta ON movimenta."idmovimenta" = movimenta."idpessoa_movimenta"

Fazendo deste jeito o retorno é o usuário e sua movimentação… eu queria o Usuário + todas as movimentações feitas por ele nesta tabela…

não quero que venha:

Nome Pessoa1 + Movimentação1…
Nome Pessoa2 + Movimentação2…
Nome Pessoa3 + Movimentação3…

Quero que venha:

Nome Pessoa1 + Todas as suas movimentações…1…2…3…4
Nome Pessoa2 + Todas as suas movimentações…1…2…3…4…5…6
Nome Pessoa3 + Todas as suas movimentações…1…2

Entendeu? Obrigado. xD :smiley:

Criado 24 de setembro de 2012
Ultima resposta 25 de set. de 2012
Respostas 2
Participantes 2