Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 telefones

2012-04-25 Por tôpico Nino
vc nao pode fazer uma funcao que concatene todos os telefones do fornecedor?



On Wed, Apr 25, 2012 at 3:12 PM, Carlos Eduardo
cegoncalve...@yahoo.com.brwrote:

 **


 Amigos, boa tarde!

 Preciso mostrar o resultado abaio da seguinte maneira

 Codigo Fornecedor Ds_For_Com
 5572 - -

 Ou seja, preciso mostrar em uma unica linha os 02 telefones que o
 fornecedor possui cadastrado. Mas não posso repetir as linhas duas, tres
 vezes..

 A minha query esta assim:

 select f.cd_fornecedor, ds_for_com from dbamv.fornecedor f, dbamv.for_com
 c where f.cd_fornecedor = 5572
 and f.cd_fornecedor=c.cd_fornecedor

 Resultado:

 Codigo Fornecedor Ds_For_Com
 5572 -
 5572 -

 Se alguem puder me ajudar, eu agradeço.

 Obg!

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 telefones

2012-04-25 Por tôpico Ricardo Arnoud
Faz uma join e concatena o resultado como v.telefone1, x.telefone 2.

Ricardo

On Wed, Apr 25, 2012 at 3:16 PM, Nino ninoba...@gmail.com wrote:

 vc nao pode fazer uma funcao que concatene todos os telefones do
 fornecedor?



 On Wed, Apr 25, 2012 at 3:12 PM, Carlos Eduardo
 cegoncalve...@yahoo.com.brwrote:

  **
 
 
  Amigos, boa tarde!
 
  Preciso mostrar o resultado abaio da seguinte maneira
 
  Codigo Fornecedor Ds_For_Com
  5572 - -
 
  Ou seja, preciso mostrar em uma unica linha os 02 telefones que o
  fornecedor possui cadastrado. Mas não posso repetir as linhas duas, tres
  vezes..
 
  A minha query esta assim:
 
  select f.cd_fornecedor, ds_for_com from dbamv.fornecedor f, dbamv.for_com
  c where f.cd_fornecedor = 5572
  and f.cd_fornecedor=c.cd_fornecedor
 
  Resultado:
 
  Codigo Fornecedor Ds_For_Com
  5572 -
  5572 -
 
  Se alguem puder me ajudar, eu agradeço.
 
  Obg!
 
 
 


 [As partes desta mensagem que não continham texto foram removidas]



 


 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
 
 Links do Yahoo! Grupos





-- 
--
Thanks,
Ricardo Arnoud
MCP, LPIC-1
(51) 8205-4658
MSN ricardo.arn...@hotmail.com

Não tenho vergonha de mudar de idéia, porque não tenho vergonha de pensar.


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 telefones

2012-04-25 Por tôpico Milton Bastos Henriquis Jr.
Utilize a cláusula PIVOT.

Para aprender como, leia:

http://miltonbastos.com/2011/07/11/pivot-e-unpivot/


Abraço

Milton




On Wed, Apr 25, 2012 at 3:12 PM, Carlos Eduardo
cegoncalve...@yahoo.com.brwrote:

 **


 Amigos, boa tarde!

 Preciso mostrar o resultado abaio da seguinte maneira

 Codigo Fornecedor Ds_For_Com
 5572 - -

 Ou seja, preciso mostrar em uma unica linha os 02 telefones que o
 fornecedor possui cadastrado. Mas não posso repetir as linhas duas, tres
 vezes..

 A minha query esta assim:

 select f.cd_fornecedor, ds_for_com from dbamv.fornecedor f, dbamv.for_com
 c where f.cd_fornecedor = 5572
 and f.cd_fornecedor=c.cd_fornecedor

 Resultado:

 Codigo Fornecedor Ds_For_Com
 5572 -
 5572 -

 Se alguem puder me ajudar, eu agradeço.

 Obg!

  




-- 
Att,


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 telefones

2012-04-25 Por tôpico Carlos Eduardo Goncalves
Ricardo, 

Fiz o join com as tabelas
Fornecedor
For_Com (a qual posui os dois telefones cadastrados para o fornecedor)
 
Olha a minha mensagem, por favor.
Pode me ajudar com alguma ideia (e exemplo)
De: Ricardo Arnoud ricardo...@gmail.com
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quarta-feira, 25 de Abril de 2012 15:20
Assunto: Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 
telefones

  
Faz uma join e concatena o resultado como v.telefone1, x.telefone 2.

Ricardo

On Wed, Apr 25, 2012 at 3:16 PM, Nino ninoba...@gmail.com wrote:

 vc nao pode fazer uma funcao que concatene todos os telefones do
 fornecedor?



 On Wed, Apr 25, 2012 at 3:12 PM, Carlos Eduardo
 cegoncalve...@yahoo.com.brwrote:

  **
 
 
  Amigos, boa tarde!
 
  Preciso mostrar o resultado abaio da seguinte maneira
 
  Codigo Fornecedor Ds_For_Com
  5572 - -
 
  Ou seja, preciso mostrar em uma unica linha os 02 telefones que o
  fornecedor possui cadastrado. Mas não posso repetir as linhas duas, tres
  vezes..
 
  A minha query esta assim:
 
  select f.cd_fornecedor, ds_for_com from dbamv.fornecedor f, dbamv.for_com
  c where f.cd_fornecedor = 5572
  and f.cd_fornecedor=c.cd_fornecedor
 
  Resultado:
 
  Codigo Fornecedor Ds_For_Com
  5572 -
  5572 -
 
  Se alguem puder me ajudar, eu agradeço.
 
  Obg!
 
 
 


 [As partes desta mensagem que não continham texto foram removidas]



 


 --
 Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
 inteira responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

 --
 Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
 VISITE: http://www.oraclebr.com.br/
 --
 Links do Yahoo! Grupos




-- 
--
Thanks,
Ricardo Arnoud
MCP, LPIC-1
(51) 8205-4658
MSN ricardo.arn...@hotmail.com

Não tenho vergonha de mudar de idéia, porque não tenho vergonha de pensar.

[As partes desta mensagem que não continham texto foram removidas]




[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 telefones

2012-04-25 Por tôpico Marcos de Moura Gonçalves
Boa tarde Carlos,

A solução de PIVOT proposta pelo Milton me parece a que melhor resolve da
forma como vc explicou. O único porém é que essa função só existe no 11g.
Se vc estiver em outra versão, ao invés de tranformar linhas em colunas
(comando PIVOT), vc pode concatenar várias linhas em uma única linha usando
CONNECT BY PRIOR, como no exemplo abaixo:

SELECT x.table_name,
   SUBSTR
  (MAX (REPLACE (SYS_CONNECT_BY_PATH (x.column_name, '/'),
 '/',
 ' '
)
   ),
   2
  ) concatenated_string
  FROM (SELECT a.table_name, a.column_name,
   ROW_NUMBER () OVER (PARTITION BY a.table_name ORDER BY
a.table_name)

ROW_NUMBER
  FROM user_tab_columns a
 WHERE table_name = 'PAIS') x
START WITH x.ROW_NUMBER = 1
CONNECT BY PRIOR x.table_name = x.table_name
   AND PRIOR x.ROW_NUMBER = x.ROW_NUMBER - 1
  GROUP BY x.table_name;
Alterei o exemplo pra usar a view user_tab_columns já que todos acessam
ela. Altere a cláusula WHERE para um nome de tabela que vc possua e veja o
resultado.

Att.

Marcos
Em 25 de abril de 2012 15:49, Carlos Eduardo Goncalves 
cegoncalve...@yahoo.com.br escreveu:

 **


 Ricardo,

 Fiz o join com as tabelas
 Fornecedor
 For_Com (a qual posui os dois telefones cadastrados para o fornecedor)

 Olha a minha mensagem, por favor.
 Pode me ajudar com alguma ideia (e exemplo)
 De: Ricardo Arnoud ricardo...@gmail.com
 Para: oracle_br@yahoogrupos.com.br
 Enviadas: Quarta-feira, 25 de Abril de 2012 15:20
 Assunto: Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os
 02 telefones



 Faz uma join e concatena o resultado como v.telefone1, x.telefone 2.

 Ricardo

 On Wed, Apr 25, 2012 at 3:16 PM, Nino ninoba...@gmail.com wrote:

  vc nao pode fazer uma funcao que concatene todos os telefones do
  fornecedor?
 
 
 
  On Wed, Apr 25, 2012 at 3:12 PM, Carlos Eduardo
  cegoncalve...@yahoo.com.brwrote:
 
   **
  
  
   Amigos, boa tarde!
  
   Preciso mostrar o resultado abaio da seguinte maneira
  
   Codigo Fornecedor Ds_For_Com
   5572 - -
  
   Ou seja, preciso mostrar em uma unica linha os 02 telefones que o
   fornecedor possui cadastrado. Mas não posso repetir as linhas duas,
 tres
   vezes..
  
   A minha query esta assim:
  
   select f.cd_fornecedor, ds_for_com from dbamv.fornecedor f,
 dbamv.for_com
   c where f.cd_fornecedor = 5572
   and f.cd_fornecedor=c.cd_fornecedor
  
   Resultado:
  
   Codigo Fornecedor Ds_For_Com
   5572 -
   5572 -
  
   Se alguem puder me ajudar, eu agradeço.
  
   Obg!
  
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  
 
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
  Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
 ESPAÇO!
  VISITE: http://www.oraclebr.com.br/
  --
  Links do Yahoo! Grupos
 
 
 

 --
 --
 Thanks,
 Ricardo Arnoud
 MCP, LPIC-1
 (51) 8205-4658
 MSN ricardo.arn...@hotmail.com

 Não tenho vergonha de mudar de idéia, porque não tenho vergonha de
 pensar.

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 telefones

2012-04-25 Por tôpico Marcos de Moura Gonçalves
Como o exemplo usa ROW_NUMBER() OVER essa query funciona para vários nomes
de tabelas (o que, no seu exemplo, significa funcionar para vários
fornecedores). Vc pode experimentar simplesmente retirando a cláusula
WHERE. O porém dessa solução é que se for em uma quantidade muito grande de
registros a query pode ficar bem lenta...

Em 25 de abril de 2012 16:35, Marcos de Moura Gonçalves
mgmar...@gmail.comescreveu:

 Boa tarde Carlos,

 A solução de PIVOT proposta pelo Milton me parece a que melhor resolve da
 forma como vc explicou. O único porém é que essa função só existe no 11g.
 Se vc estiver em outra versão, ao invés de tranformar linhas em colunas
 (comando PIVOT), vc pode concatenar várias linhas em uma única linha usando
 CONNECT BY PRIOR, como no exemplo abaixo:

 SELECT x.table_name,
SUBSTR
   (MAX (REPLACE (SYS_CONNECT_BY_PATH (x.column_name, '/'),
  '/',
  ' '
 )
),
2
   ) concatenated_string
   FROM (SELECT a.table_name, a.column_name,
ROW_NUMBER () OVER (PARTITION BY a.table_name ORDER BY
 a.table_name)

 ROW_NUMBER
   FROM user_tab_columns a
  WHERE table_name = 'PAIS') x
 START WITH x.ROW_NUMBER = 1
 CONNECT BY PRIOR x.table_name = x.table_name
AND PRIOR x.ROW_NUMBER = x.ROW_NUMBER - 1
   GROUP BY x.table_name;
 Alterei o exemplo pra usar a view user_tab_columns já que todos acessam
 ela. Altere a cláusula WHERE para um nome de tabela que vc possua e veja o
 resultado.

 Att.

 Marcos
 Em 25 de abril de 2012 15:49, Carlos Eduardo Goncalves 
 cegoncalve...@yahoo.com.br escreveu:

 **


 Ricardo,

 Fiz o join com as tabelas
 Fornecedor
 For_Com (a qual posui os dois telefones cadastrados para o fornecedor)

 Olha a minha mensagem, por favor.
 Pode me ajudar com alguma ideia (e exemplo)
 De: Ricardo Arnoud ricardo...@gmail.com
 Para: oracle_br@yahoogrupos.com.br
 Enviadas: Quarta-feira, 25 de Abril de 2012 15:20
 Assunto: Re: [oracle_br] Ajuda no Select para mostrar uma linha somente
 os 02 telefones



 Faz uma join e concatena o resultado como v.telefone1, x.telefone 2.

 Ricardo

 On Wed, Apr 25, 2012 at 3:16 PM, Nino ninoba...@gmail.com wrote:

  vc nao pode fazer uma funcao que concatene todos os telefones do
  fornecedor?
 
 
 
  On Wed, Apr 25, 2012 at 3:12 PM, Carlos Eduardo
  cegoncalve...@yahoo.com.brwrote:
 
   **
  
  
   Amigos, boa tarde!
  
   Preciso mostrar o resultado abaio da seguinte maneira
  
   Codigo Fornecedor Ds_For_Com
   5572 - -
  
   Ou seja, preciso mostrar em uma unica linha os 02 telefones que o
   fornecedor possui cadastrado. Mas não posso repetir as linhas duas,
 tres
   vezes..
  
   A minha query esta assim:
  
   select f.cd_fornecedor, ds_for_com from dbamv.fornecedor f,
 dbamv.for_com
   c where f.cd_fornecedor = 5572
   and f.cd_fornecedor=c.cd_fornecedor
  
   Resultado:
  
   Codigo Fornecedor Ds_For_Com
   5572 -
   5572 -
  
   Se alguem puder me ajudar, eu agradeço.
  
   Obg!
  
  
  
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  
 
 
  --
  Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
  inteira responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 
  --
  Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
  Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
 ESPAÇO!
  VISITE: http://www.oraclebr.com.br/
  --
  Links do Yahoo! Grupos
 
 
 

 --
 --
 Thanks,
 Ricardo Arnoud
 MCP, LPIC-1
 (51) 8205-4658
 MSN ricardo.arn...@hotmail.com

 Não tenho vergonha de mudar de idéia, porque não tenho vergonha de
 pensar.

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

  





[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br