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]

Responder a