Boa sugestão da PIVOT. Acredito que via SQL Puro não será possível, tal qual o Chiappa disse.
Att. Evandro Giachetto Oracle Certified Associate evan...@clickinterativa.com.br 2009/10/28 jlchiappa <jlchia...@yahoo.com.br> > > > É uma outra possibilidade, sim, mas eu particularmente tenho algum receio > de usar funões não-documentadas , EM ESPECIAL quando numa última versão mais > à frente (como a 11g em relação à 10g) surgiu uma função documentada que faz > algo parecido, a tendência é a Oracle 'abandonar' a não-documentada no novo > release - nem que ela não seja removida (como não foi), naturalmente > qualquer error-fix é incerto... > > http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2196162600402#1528341600346707552fala > um pouco dela, e de duas outras variações no tema pivot , o truque com > CONNECT BY e ANALYTICS). > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>, > "Zilmar - ig" <zfurq...@...> escreveu > > > > > Amigos > > Também pode ser efetuado usando a função não documentada WM_CONCAT > > O único problema é que não é garantida a ordem sequencial dos itens, mas > funciona > > > > Veja a seguir utilizando a USER_INDEXES como a sua tabela de NOTA_FISCAL > e USER_IND_COLUMNS como ITENS_DA_NOTA: > > > > DSV> > > DSV> > > DSV> column itens format a60 > > DSV> > > DSV> select a.index_name, b.itens > > 2 from user_indexes a, > > 3 (select index_name,wm_concat(column_position) itens from > all_ind_columns group by index_name) b > > 3 where b.index_name = a.index_name > > 4 order by a.index_name; > > > > INDEX_NAME ITENS > > ------------------------------ > ---------------------------------------------------------- > > ABR_SVP_P 1,2 > > DE_PARA_SMP_SRP1 1,3,2 > > DE_PARA_SMP_SRP2 1,2,3 > > IX_AUX_SVP3213 1 > > SYS_C0035777 1,2,3,5,7,6,4 > > SYS_C0035804 1 > > SYS_C0036081 1,2,3 > > SYS_C0036226 1 > > SYS_C0036372 1,3,4,2 > > SYS_C0036404 1,6,5,4,2,3 > > SYS_C0036436 1,3,2 > > SYS_C0037103 1 > > SYS_C0038040 1,5,4,2,3 > > SYS_C0038071 1,3,5,4,2 > > TB_CARGO_AREA_ATUACAOBKP1 1,4,2,3 > > TB_ENDERECO_PESSOA_HISTBKP1 1,2,3 > > TB_PESSOA_CAT_PROD_HISTBKP1 1,2,3 > > TB_PESSOA_MAILINGBKP1 1 > > VENDA1 1 > > XAK1ANUN_AGEN_TRANS_ANTEC 1,5,4,2,3 > > XAK1AUX_MIG3 1,3,2 > > XAK1AUX_SVP3228_IND 1,2 > > XAK1BASE_HIST_OBJ 1,2,3,5,7,6,4 > > XAK1CHAVE_DEDUPLICACAO 1,3,6,5,4,2,7,10,9,8 > > XAK1CLIENTE_CARTEIRA 1,3,5,4,2 > > XAK1CONTA_CORRENTE_CLIENTE 1,4,3,2 > > XAK1CONTATO_INTERNO 1 > > XAK1CONTRATO_ANTECIPADO 1 > > XAK1EXCECAO_BV 1,3,5,7,8,6,4,2 > > XAK1INF_GERENCIAL_FREQ 1,2,3,5,6,4 > > > > 31 linhas selecionadas. > > > > DSV> > > DSV> > > > > Espero ter ajudado..... > > > > Abs, > > Zilmar Furquim > > Synchro Systems/SP > > > > > > ----- Original Message ----- > > From: jlchiappa > > To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > > Sent: Wednesday, October 28, 2009 1:58 PM > > Subject: [oracle_br] Re: Agrupamento NF + ItensNF > > > > > > Umas infos adicionais : esse tipo de operação se chama PIVOT ou CROSSTAB > query, e realmente não HAVIA built-in pra isso no banco Oracle até a versão > 10gR2, a built-in PIVOT foi uma das novidades no 11g.... Outra, DE FORMA > ALGUMA escrever uma procedure é o melhor caminho de cara, a regra em geral é > SE der pra escrever em SQL (por exemplo, em sendo FIXO o número de itens de > cada pedido, criando colunas derivadas via DECODE) , faça, somente se não > der mesmo aí sim PL/SQL numa procedure : > http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:7086279412131#1601993500346296870fala > sobre isso e > http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:15637744429336#1832387900346537799tem > exemplo de um pl/sql para agregação... > > > > []s > > > > Chiappa > > > > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>, > Evandro Giachetto <evandrogiachetto@> escreveu > > > > > > Segue a resposta. > > > O Oracle não tem nenhuma function que faça esse tipo de concatenação > para > > > você. > > > Você terá que criá-la. > > > > > > > http://searchoracle.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid41_gci1160447,00.html > > > > > > Att. > > > > > > Evandro Giachetto > > > Oracle Certified Associate > > > evandro@ > > > > > > > > > 2009/10/28 Alex Oracle <alex80.lists@> > > > > > > > > > > > > > > > Olá pessoal, > > > > > > > > surgiu uma situação e que fiquei com duvida se é possível resolver > num > > > > simples Sql ou seria necessário um desenvolvimento de procedure, > etc.etc. > > > > > > > > A situação é a seguinte: > > > > Considerando uma tabela <Nota_Fiscal> e a filha <Itens_Nota_Fiscal>. > É > > > > possível obter para um registro específico de NotaFiscal, trazer uma > coluna > > > > extra com os números dos Itens_Nota_Fiscal concatenados?? > > > > > > > > A situação é um pouco simples, mas não conheço uma situação nativa em > Sql > > > > pra resolver isso. > > > > Se alguém já teve experiencia nisso, e puder compartilhar eu > agradeço.. > > > > > > > > Abraço. > > > > Alex > > > > > > > > __________________________________________________________ > > > > Veja quais são os assuntos do momento no Yahoo! +Buscados > > > > http://br.maisbuscados.yahoo.com > > > > > > > > > > > > > > > > > > > > > [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]