Select complicado

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Boa tarde pessoal,

Seguinte, estou um select da seguinte maneira

Selecionar tudo

select tx_anexo
from table1 t1, table2 t2
where t1.a = t2.a
and t1.cod = 561
esse select me retorna duas linhas, no campo TX_ANEXO ele me retornou na primeira linha um valor X e na segunda linha um Y. Eu queria montar esse select na forma em que ele me retornasse o valor X e Y na mesma linha um do lado do outro. Pdem me ajudar???
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Acho que seria mais ou menos isso:

Selecionar tudo


SELECT t1.tx_anexo, (SELECT tx_anexo
						     FROM table2 t2
					    	 WHERE t2.a = t1.a) tx_anexo_2
  FROM table1 t1
 WHERE t1.a = 1
   AND t1.cod = 1000

Quem tiver mais alguma idéia / solução, posta ai pra gente.
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

hoje o meu select retorna assim:

Selecionar tudo

cd_anexo           cd_pesquisa            tx_anexo
--------------     -------------------    -----------------------
633                561                    aaaaaaaaaaaaaa
634                561                    bbbbbbbbbbbbbb

e eu quero que retorne assim:

Selecionar tudo

 tx_anexo1                                    tx_anexo2
  --------------------------------------    ------------------------------------
  aaaaaaaaaaaaaaaaaaaa                      bbbbbbbbbbbbbbbbbb
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Posta algumas linhas da tua tabela pra gente dar uma olhada brother...
Pode ser este caso ai em especifico, porém, com as tabelas 1 e 2.

Vlw
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Meu select original é esse:

Selecionar tudo

select anex.tx_anexo as anexo1,anex.tx_anexo as anexo2  
from db_pesquisa.tbl_anexo anex,
     db_pesquisa.tbl_pesquisa pesq,
     db_pesquisa.tbl_pessoa_empresa pessemp,
     db_pesquisa.tbl_pessoa pes
where pesq.cd_pesquisa = 561 
  and anex.cd_pesquisa = pesq.cd_pesquisa 
  and pesq.cd_pesquisa = pessemp.cd_pesquisa 
  and pessemp.cd_pessoa = pes.cd_pessoa
Que me retorna assim:

Selecionar tudo

ANEXO1                                           ANEXO2
-----------------------------------------------  -------------------------------
A01_0023_Cópia de anexo_B_teste.doc              A01_0023_Cópia de anexo_B_teste.doc
anexo_D_A01_0023.doc                             anexo_D_A01_0023.doc

repare que tem o mesmo valor para as duas colunas, só que eles são diferente em linha e eu quero que me retorne somente uma linha sendo que cada valor fique em colunas diferentes.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Você deseja que saia conforme exemplificado abaixo (no Proposto)?
Só pra que eu me situe melhor...


Hoje:

Selecionar tudo

 ANEXO1                                          ANEXO2 
----------------------------------------------- ------------------------------- 
A01_0023_Cópia de anexo_B_teste.doc             A01_0023_Cópia de anexo_B_teste.doc 
anexo_D_A01_0023.doc                            anexo_D_A01_0023.doc 




Proposto:

Selecionar tudo

 ANEXO1                                          ANEXO2 
----------------------------------------------- ------------------------------- 
A01_0023_Cópia de anexo_B_teste.doc             anexo_D_A01_0023.doc 
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

EXATAMENTE ! ! ! !
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

beleza brother, vou fazer uns testes aqui e já te retorno.
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

é isso mesmo, hoje é retornado duas linhas e uma coluna só e eu quero que me retorne uma linhas e duas colunas.
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Conseguiu alguma coisa Trevisolli?...eu não consegui não, está difícil esse.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Com PL/SQL pode ser ou, somente SQL ?
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Pode ser o que dêr Trevisolli...
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Aqui no forum já foi falado algo sobre CROSSTAB.
Procure por isso que encontrará algo!
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Verdade Dr_Gori.
Valeu pela dica.

Cleber, tente adaptar como neste exemplo

qualquer coisa, manda ai.
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

meu campo é varchar2...não posso somar, não posso usar função de grupo...não tem outra saída?
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Funcionou!!!!

Consegui desta maneira:

Selecionar tudo

select pesq.cd_pesquisa,
         max(anex.tx_anexo)  Anexo_1,
         min(anex.tx_anexo)  Anexo_2     
from db_pesquisa.tbl_anexo anex,
        db_pesquisa.tbl_pesquisa pesq,
       db_pesquisa.tbl_pessoa_empresa pessemp,
       db_pesquisa.tbl_pessoa pes
where pesq.cd_pesquisa = 561 
  and  anex.cd_pesquisa = pesq.cd_pesquisa 
  and  pesq.cd_pesquisa = pessemp.cd_pesquisa 
  and  pessemp.cd_pessoa = pes.cd_pessoa      
group by pesq.cd_pesquisa 
order by 1
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes