Select dentro de Select (ajuda)

Daew pessoal

to com um probleminha em uma consulta q estou fazendo.
Tenho q listar todas as viagens de todos os clientes. Bom o método devolve um ArrayList. O que pensei. Busco todas as viagens (Tabela Viagem) que me retorna o CPF do cliente, o dia, mes e ano da viagem. com este cpf eu faço um select na (Tabela Cliente) que me retorna o nome, telefone, cpf e sexo.
Quando faço a busca pela interface me retorna o seguinte erro
"[Microsoft][ODBC Driver Manager] Estado de cursor inválido
null
[Ljava.lang.StackTraceElement;@1c78e57"

1ª linha - é getMessage()
2ª linha - é getCause()
3ª linha - é getStackTrace()

o código q estou me referindo esta abaixo:public ArrayList buscarTodas() throws Exception{ ResultSet resultado = null; ArrayList lViagens = new ArrayList(); Viagem v = null; String sql = "SELECT * FROM Viagem"; resultado = bancoDados.executaConsulta(sql); Cliente cliente = null; while(resultado.next()){ String cpf = resultado.getString("cliente"); int dia = resultado.getInt("dia"); int mes = resultado.getInt("mes"); int ano = resultado.getInt("ano"); ResultSet aux = bancoDados.executaConsulta("SELECT * FROM Cliente WHERE cpf='"+cpf+"'"); String sexo = aux.getString("sexo"); cliente = new Cliente(aux.getString("cpf"),aux.getString("nome"),sexo.charAt(0),aux.getString("fone")); v = new Viagem(cliente, ano, mes, dia); lViagens.add(v); } return lViagens; }

Obrigado pessoal

Ai pessoal, to postando a solução que achei pois vi que muitas pessoas entraram e ninguem sabia como resolver, ou não quiseram responder :slight_smile:

a solução é simples.

public ArrayList buscarTodas() throws Exception{ ResultSet resultado = null; ArrayList lViagens = new ArrayList(); String sql = "SELECT * FROM Viagem,Cliente WHERE Viagem.cliente=Cliente.cpf"; resultado = bancoDados.executaConsulta(sql); Cliente cliente = null; while(resultado.next()){ Viagem v = new Viagem(); String cpf = resultado.getString("cliente"); int dia = resultado.getInt("dia"); int mes = resultado.getInt("mes"); int ano = resultado.getInt("ano"); String s = resultado.getString("sexo"); char sexo = s.charAt(0); cliente = new Cliente(cpf,resultado.getString("nome"),sexo,resultado.getString("fone")); v.setCliente(cliente); v.setDataSaida(ano, mes, dia); v.setCodigo(resultado.getInt("codigo")); lViagens.add(v); } return lViagens; }

abraços

em alguns casos nosso resultado pode ser obtido apenas com uma consulta sql, o que é bastante recomendado, . Nao entendi muito o teu codigo mas como achou o resultado esperado parabens…Aquele erro la de cima é que o sql server nao aceita um select dentro do outro, ja penei com isso tbm algumas vezes mas uma unica consulta ajudou.

t+++