Re: [oracle_br] Re: Agrupamento NF + ItensNF

2009-10-28 Por tôpico Alex Oracle
Ola pessoal,

só dando um retorno, a função wm_concat resolve o problema.
Por sinal achei uma pagina exemplificando

http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php


Obrigado a todos pela contribuição.
Alex


  

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com


Re: [oracle_br] Re: Agrupamento NF + ItensNF

2009-10-28 Por tôpico Evandro Giachetto
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 

>
>
> É 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:0P11_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 ,
> "Zilmar - ig"  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 
> > 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:0P11_QUESTION_ID:7086279412131#1601993500346296870fala
>  sobre isso e
> http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:15637744429336#1832387900346537799tem
>  exemplo de um pl/sql para agregação...
> >
> > []s
> >
> > Chiappa
> >
> > --- Em oracle_br@yahoogrupos.com.br ,
> Evandro Giachetto  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 
> > >
> > > >
> > > >
> > > > Olá pessoal,
> >

[oracle_br] Re: Agrupamento NF + ItensNF

2009-10-28 Por tôpico jlchiappa
É 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:0P11_QUESTION_ID:2196162600402#1528341600346707552
 fala 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, "Zilmar - ig"  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_HISTBKP11,2,3
> TB_PESSOA_CAT_PROD_HISTBKP11,2,3
> TB_PESSOA_MAILINGBKP1  1
> VENDA1 1
> XAK1ANUN_AGEN_TRANS_ANTEC  1,5,4,2,3
> XAK1AUX_MIG3   1,3,2
> XAK1AUX_SVP3228_IND1,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_INTERNO1
> XAK1CONTRATO_ANTECIPADO1
> 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 
>   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:0P11_QUESTION_ID:7086279412131#1601993500346296870
>  fala sobre isso e 
> http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:15637744429336#1832387900346537799
>  tem exemplo de um pl/sql para agregação...
> 
>   []s
> 
>   Chiappa
> 
>   --- Em oracle_br@yahoogrupos.com.br, Evandro Giachetto  
> 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 
>   > 
>   > >
>   > >
>   > > 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.
&

[oracle_br] Re: Agrupamento NF + ItensNF

2009-10-28 Por tôpico jlchiappa


Sim, por default a built-in PIVOT aceita como argumento uma lista de valores, 
que claro é fixa, mas em princípio vc pode MIXAR os conceitos, ie : tenha uma 
rotina que faz a agregação e via SQL dinâmico essa rotina alimenta a lista, em 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:7086279412131#702622700346637683
 na entrada "11g pivot with dynamic in-list" (perto do final da página) há um 
exemplinho. Mas sim, eu disse SE FOR POSSÌVEL porque nem sempre é possível 
se fazer diretamente com SQL, sim... No caso em questão, Itens de um pedido, 
IMAGINO que seja viável estabelecer um Máximo razoável de Itens, aí a opção só 
em SQL via DECODE pode funcionar bem, talvez... É testar...

 []s
 
   Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, Evandro Giachetto  
escreveu
>
> Chiappa, me corrija se estiver errado.
> Eu conheço o método PIVOT, no entanto, ele tem uma limitação.
> O Metodo PIVOT consiste, basicamente, em você transformar linhas em colunas.
> Ex:
> 
> COD_VENDA PRODUTO PAIS_VENDA
> 13351  BRZ
> 23351  USA
> 33351  CND
> 43351  BRZ
> 55254  JPN
> 65254  USA
> 
> O Resultado da PIVOT seria assim, por exemplo:
> 
> PRODUTO  VD_BRZ  BD_USA  VD_CND  VD_JPN
> 33512 1 1  0
> 52540 1 0  1
> 
> Você tem que conhecer a quantidade de elementos que concatenará senão não há
> como você fazer os agrupamentos.
> Nesse caso, todas as notas fiscais deveriam ter uma mesma quantidade de
> Itens, ou uma quantidade máxima de itens FIXA.
> Se isso ocorrer, você consegue usar o PIVOT.
> (nesse caso, agrupamos vendas por país pois conheço quantos países eu traria
> no resultado: 4)
> 
> Atenciosamente.
> 
> Evandro Giachetto
> Oracle Certified Associate
> evan...@...
> 
> 
> 2009/10/28 jlchiappa 
> 
> >
> >
> > 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:0P11_QUESTION_ID:7086279412131#1601993500346296870fala
> >  sobre isso e
> > http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:15637744429336#1832387900346537799tem
> >  exemplo de um pl/sql para agregação...
> >
> > []s
> >
> > Chiappa
> >
> > --- Em oracle_br@yahoogrupos.com.br ,
> > Evandro Giachetto  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 
> >
> > >
> > > >
> > > >
> > > > 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  e a filha . É
> > > > 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]
>




Re: [oracle_br] Re: Agrupamento NF + ItensNF

2009-10-28 Por tôpico Evandro Giachetto
Chiappa, me corrija se estiver errado.
Eu conheço o método PIVOT, no entanto, ele tem uma limitação.
O Metodo PIVOT consiste, basicamente, em você transformar linhas em colunas.
Ex:

COD_VENDA PRODUTO PAIS_VENDA
13351  BRZ
23351  USA
33351  CND
43351  BRZ
55254  JPN
65254  USA

O Resultado da PIVOT seria assim, por exemplo:

PRODUTO  VD_BRZ  BD_USA  VD_CND  VD_JPN
33512 1 1  0
52540 1 0  1

Você tem que conhecer a quantidade de elementos que concatenará senão não há
como você fazer os agrupamentos.
Nesse caso, todas as notas fiscais deveriam ter uma mesma quantidade de
Itens, ou uma quantidade máxima de itens FIXA.
Se isso ocorrer, você consegue usar o PIVOT.
(nesse caso, agrupamos vendas por país pois conheço quantos países eu traria
no resultado: 4)

Atenciosamente.

Evandro Giachetto
Oracle Certified Associate
evan...@clickinterativa.com.br


2009/10/28 jlchiappa 

>
>
> 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:0P11_QUESTION_ID:7086279412131#1601993500346296870fala
>  sobre isso e
> http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:15637744429336#1832387900346537799tem
>  exemplo de um pl/sql para agregação...
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br ,
> Evandro Giachetto  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
> > evan...@...
> >
> >
> > 2009/10/28 Alex Oracle 
>
> >
> > >
> > >
> > > 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  e a filha . É
> > > 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]



Re: [oracle_br] Re: Agrupamento NF + ItensNF

2009-10-28 Por tôpico Zilmar - ig
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_HISTBKP11,2,3
TB_PESSOA_CAT_PROD_HISTBKP11,2,3
TB_PESSOA_MAILINGBKP1  1
VENDA1 1
XAK1ANUN_AGEN_TRANS_ANTEC  1,5,4,2,3
XAK1AUX_MIG3   1,3,2
XAK1AUX_SVP3228_IND1,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_INTERNO1
XAK1CONTRATO_ANTECIPADO1
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 
  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:0P11_QUESTION_ID:7086279412131#1601993500346296870
 fala sobre isso e 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:15637744429336#1832387900346537799
 tem exemplo de um pl/sql para agregação...

  []s

  Chiappa

  --- Em oracle_br@yahoogrupos.com.br, Evandro Giachetto  
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
  > evan...@...
  > 
  > 
  > 2009/10/28 Alex Oracle 
  > 
  > >
  > >
  > > 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  e a filha . É
  > > 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]



[oracle_br] Re: Agrupamento NF + ItensNF

2009-10-28 Por tôpico jlchiappa
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:0P11_QUESTION_ID:7086279412131#1601993500346296870
 fala sobre isso e 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:15637744429336#1832387900346537799
 tem exemplo de um pl/sql para agregação...

 []s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Evandro Giachetto  
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
> evan...@...
> 
> 
> 2009/10/28 Alex Oracle 
> 
> >
> >
> > 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  e a filha . É
> > 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]
>