Dois "SELECTS"

Olá galera…uma dúvida…é possível usar dois “SELECTS” diferentes em campos e tabelas dentro de um mesmo método numa classe?
EX:

StringBuffer query = new StringBuffer();
query.append("SELECT ");
query.append("CLC.ID_CPG, ");
query.append("FNCT_CONDICAO_PAGTO_JAVA(CLC.ID_CPG) NM_CPG, ");
query.append("CLC.CD_ATIVO, ");
query.append("CLC.CD_ORGAO_PUBLICO ");
query.append("FROM ");
query.append("CLIENTE_COMPLEMENTO CLC ");
query.append("WHERE ");
query.append("CLC.ID_CLI = ? ");

query.append("SELECT ");
			
			query.append("CC.ID_CLI, ");
			query.append("CC.ID_CONTA, ");
			query.append("CC.VL_LIM_DIA, ");
			query.append("CC.VL_LIM_GLOB_CONCEDIDO, ");
			query.append("CC.VL_LIM_GLOB_DISPONIVEL, ");
			query.append("CC.VL_LIM_COMP_DISPONIVEL, ");
			query.append("CC.DT_BASE, ");
			query.append("CC.CD_AFINIDADE ");
		
			query.append("FROM ");
			query.append("CLIENTE_CARTAO CC ");
			
			query.append("WHERE ");
			query.append("CC.ID_CLI = ? ");

			
                            PreparedStatement ps = null;
			ResultSet rs = null;

[quote=arthurgon]Olá galera…uma dúvida…é possível usar dois “SELECTS” diferentes em campos e tabelas dentro de um mesmo método numa classe?
EX:

StringBuffer query = new StringBuffer();
query.append("SELECT ");
query.append("CLC.ID_CPG, ");
query.append("FNCT_CONDICAO_PAGTO_JAVA(CLC.ID_CPG) NM_CPG, ");
query.append("CLC.CD_ATIVO, ");
query.append("CLC.CD_ORGAO_PUBLICO ");
query.append("FROM ");
query.append("CLIENTE_COMPLEMENTO CLC ");
query.append("WHERE ");
query.append("CLC.ID_CLI = ? ");

query.append("SELECT ");
			
			query.append("CC.ID_CLI, ");
			query.append("CC.ID_CONTA, ");
			query.append("CC.VL_LIM_DIA, ");
			query.append("CC.VL_LIM_GLOB_CONCEDIDO, ");
			query.append("CC.VL_LIM_GLOB_DISPONIVEL, ");
			query.append("CC.VL_LIM_COMP_DISPONIVEL, ");
			query.append("CC.DT_BASE, ");
			query.append("CC.CD_AFINIDADE ");
		
			query.append("FROM ");
			query.append("CLIENTE_CARTAO CC ");
			
			query.append("WHERE ");
			query.append("CC.ID_CLI = ? ");

			
                            PreparedStatement ps = null;
			ResultSet rs = null;

[/quote]

vc não pode fazer??

StringBuffer query = new StringBuffer(); query.append("SELECT "); query.append("CLC.ID_CPG, "); query.append("FNCT_CONDICAO_PAGTO_JAVA(CLC.ID_CPG) NM_CPG, "); query.append("CLC.CD_ATIVO, "); query.append("CLC.CD_ORGAO_PUBLICO "); query.append("CC.ID_CLI, "); query.append("CC.ID_CONTA, "); query.append("CC.VL_LIM_DIA, "); query.append("CC.VL_LIM_GLOB_CONCEDIDO, "); query.append("CC.VL_LIM_GLOB_DISPONIVEL, "); query.append("CC.VL_LIM_COMP_DISPONIVEL, "); query.append("CC.DT_BASE, "); query.append("CC.CD_AFINIDADE "); query.append("FROM "); query.append("CLIENTE_COMPLEMENTO CLC, CLIENTE_CARTAO CC "); query.append("WHERE "); query.append("CLC.ID_CLI = CC.ID_CLI") query.append("CLC.ID_CLI = ? ");

cara, vc vai ter só 1 resultset pra cada statemente executado.

mais fácil vc dizer o q vc ta querendo inventar!

Pq não usar “from tabela1 t1, tavbela2 t2”

Então…o fato é que preciso acrescentar dados novos do Banco em uma tela de consulta
que já existe, porém, esses dados chegam de tabelas diferentes.

Só pra complementar…essas tabelas não estão relacionadas…

select t1.nome as nome, t2.idade, t2.sexo from tabela1 t1, tabela t2

assim vc faz o select de 2 tabelas.

pode usar o where, join, qqr coisa.

obs, acho q o seu problema está em SQL não com java.

Realmente…o galho está no SQL. De qq forma…entendi mais ou menos .

Fiz desse jeito…e os valores vieram vazios nos campos. Tem outra forma?

SELECT CLC.ID_CPG,FNCT_CONDICAO_PAGTO_JAVA(CLC.ID_CPG) NM_CPG,CLC.CD_ATIVO,
CLC.CD_ORGAO_PUBLICO, CC.ID_CLI, CC.ID_CONTA,CC.VL_LIM_DIA,CC.VL_LIM_GLOB_CONCEDIDO,CC.VL_LIM_GLOB_DISPONIVEL,
CC.VL_LIM_COMP_DISPONIVEL,CC.DT_BASE,CC.CD_AFINIDADE FROM CLIENTE_COMPLEMENTO CLC, CLIENTE_CONTA CC
WHERE CLC.ID_CLI = CC.ID_CLI AND CC.ID_CLI=CLC.ID_CLI;

Bom, não conheco a estrutura do seu BD, mas creio que não trouxe nada justamente pq q vc disse, as tabelas nao se relacionam, cada uma é uma coisa diferente, sendo assim, tente algo parecido com o abaixo, informe o ID do cliente em cada tabela… ou por acaso ele é o msm? Se for melhor ainda!

Se ele não for o mesmo (o ID):

[code]SELECT CLC.ID_CPG,
FNCT_CONDICAO_PAGTO_JAVA(CLC.ID_CPG) NM_CPG,
CLC.CD_ATIVO,
CLC.CD_ORGAO_PUBLICO,
CC.ID_CLI,
CC.ID_CONTA,
CC.VL_LIM_DIA,
CC.VL_LIM_GLOB_CONCEDIDO,
CC.VL_LIM_GLOB_DISPONIVEL,
CC.VL_LIM_COMP_DISPONIVEL,
CC.DT_BASE,
CC.CD_AFINIDADE

FROM CLIENTE_COMPLEMENTO CLC, CLIENTE_CARTAO CC

WHERE CLC.ID_CLI = ?
AND CC.ID_CLI = ?[/code]

Se ele for o mesmo (o ID):

[code]SELECT CLC.ID_CPG,
FNCT_CONDICAO_PAGTO_JAVA(CLC.ID_CPG) NM_CPG,
CLC.CD_ATIVO,
CLC.CD_ORGAO_PUBLICO,
CC.ID_CLI,
CC.ID_CONTA,
CC.VL_LIM_DIA,
CC.VL_LIM_GLOB_CONCEDIDO,
CC.VL_LIM_GLOB_DISPONIVEL,
CC.VL_LIM_COMP_DISPONIVEL,
CC.DT_BASE,
CC.CD_AFINIDADE

FROM CLIENTE_COMPLEMENTO CLC
left join CLIENTE_CARTAO CC on CC.id_cli = CLC.id_cli

WHERE CLC.ID_CLI = ?
[/code]

Oi Renata;
Valeu pela resposta…muito obrigado mesmo. Sou péssimo com SQL.
Então…no primeiro caso ele me volta o valor apenas da primeira tabela, e no segundo caso…
considerando q sejam IDs iguais, ele me volta as colunas vazias. O que poderia ser??

achei que o ID_CLI fosse igual para as duas tabelas… :frowning:

Oi Renata;
Deu certo…os campos apareceram…mas o JSP não tá trazendo por algum motivo. To usando Struts 1. Tem alguma idéia
do que poderia ser?
To mapeando os campos no Struts-config…mesmo sendo só pesquisa.
Valeu

Que bom que deu certo!

Então amigo, sobre sua última dúvida vamos esperar que alguém responda… java pra web não é meu forte e não me arrisco a dar algum palpite… :wink:

Boa sorte!

Aí galera…se alguem puder me ajudar. To customizando um projeto q foi feito faz uns tres anos e ainda com JDBC.
Com ajuda do pessoal do GUJ (valeu Renata) consegui a query correta pra um join entre duas tabelas om IDs distintos.
O fato é q agora o JSP não está conseguindo ler esses novos dados q terei de acrescentar. A tela já existe e é de consulta.
Segue abaixo a query q utilizei e os dados q “deveriam” ser vizualizados.
Se alguem souber um pouco de Struts…por favor me ajudem…
Abraço.

  1. SELECT CLC.ID_CPG,
  2.    FNCT_CONDICAO_PAGTO_JAVA(CLC.ID_CPG) NM_CPG,  
    
  3.    CLC.CD_ATIVO,  
    
  4.    CLC.CD_ORGAO_PUBLICO,  
    
  5.    CC.ID_CLI,  
    
  6.    CC.ID_CONTA,  
    
  7.    CC.VL_LIM_DIA,  
    
  8.    CC.VL_LIM_GLOB_CONCEDIDO,  
    
  9.    CC.VL_LIM_GLOB_DISPONIVEL,  
    
  10.    CC.VL_LIM_COMP_DISPONIVEL,  
    
  11.    CC.DT_BASE,  
    
  12.    CC.CD_AFINIDADE  
    
  13. FROM CLIENTE_COMPLEMENTO CLC, CLIENTE_CARTAO CC
  14. WHERE CLC.ID_CLI = ?
  15. AND CC.ID_CLI = ?