Re: [oracle_br] Ajuda no Select para mostrar uma linha somente os 02 telefones
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
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
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
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
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
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