Select complicado

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qua, 02 Mai 2007 2:49 pm

Boa tarde pessoal,

Seguinte, estou um select da sehuinte maneira


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???
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qua, 02 Mai 2007 3:15 pm

Brother,

Acho que seria mais ou menos isso:

Código: Selecionar todos

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.
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Qua, 02 Mai 2007 3:23 pm

hoje o meu select retorna assim:

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


e eu quero que retorne assim:

tx_anexo1 tx_anexo2
-------------------------------------- ------------------------------------
aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qua, 02 Mai 2007 3:27 pm

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
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Qua, 02 Mai 2007 3:33 pm

Meu select original é esse:

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:

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.
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qua, 02 Mai 2007 3:48 pm

Brother,

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


Hoje:


Código: Selecionar todos
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:


Código: Selecionar todos
ANEXO1                                          ANEXO2
----------------------------------------------- -------------------------------
A01_0023_Cópia de anexo_B_teste.doc             anexo_D_A01_0023.doc
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Qua, 02 Mai 2007 3:54 pm

EXATAMENTE ! ! ! !
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qua, 02 Mai 2007 3:58 pm

beleza brother, vou fazer uns testes aqui e já te retorno.
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Qua, 02 Mai 2007 4:02 pm

é isso mesmo, hoje é retornado duas linhas e uma coluna só e eu quero que me retorne uma linhas e duas colunas.
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qua, 02 Mai 2007 5:23 pm

Conseguiu alguma coisa Trevisolli?...eu não consegui não, está difícil esse.
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qua, 02 Mai 2007 5:45 pm

Brother,

Com PL/SQL pode ser ou, somente SQL ?
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Qua, 02 Mai 2007 5:54 pm

Pode ser o que dêr Trevisolli...
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qua, 02 Mai 2007 6:14 pm

Aqui no forum já foi falado algo sobre CROSSTAB.
Procure por isso que encontrará algo!
dr_gori
Localização: Portland, OR USA

Thomas F. G

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

Mensagemem Qua, 02 Mai 2007 10:55 pm

Verdade Dr_Gori.
Valeu pela dica.

Cleber, tente adaptar como neste exemplo

qualquer coisa, manda ai.
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Qui, 03 Mai 2007 2:50 pm

meu campo é varchar2...não posso somar, não posso usar função de grupo...não tem outra saída?
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza

Mensagemem Qui, 03 Mai 2007 4:02 pm

Funcionou!!!!

Consegui desta maneira:

Código: Selecionar todos
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
cleberzumba
Localização: Brasília-DF

Cleber Zumba de Souza



Voltar para SQL

Quem está online

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