Criar view repetindo registros

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
dudu0566
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 74
Registrado em: Seg, 06 Ago 2007 3:59 pm
Localização: Campinas - SP
Eduardo Gomes

Não sei se vou conseguir explicar minha situação:
Tenho um select que entre as informações, traz um campo denominado "profundidade".
Meu problema é que preciso criar uma view que retorna os demais campos repetindo o número de registro de acordo com a profundidade.
Seria mais ou menos assim:
select
id_prateleira | descricao | capacidade | profundidade
1 | principal | 50,50 | 3
2 | opcional | 20,15 | 2

view
1 | principal | 50,50
1 | principal | 50,50
1 | principal | 50,50
2 | opcional | 20,15
2 | opcional | 20,15

E não estou conseguindo fazer esta view.
Acredito que com uma função pipelined eu consigo, mas queria fazer num select mesmo.

ps. criei esse cenário para simular meu problema.

Agradeço a atenção,
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Falai Edu, beleza brow?
brother.. vê se isso aqui te ajuda...

Selecionar tudo

SQL> with tbl as (select 1 id_prateleira, 'PRINCIPAL' descricao, 50.50 capacidade, 3 profundidade from dual
  2               union
  3               select 2 id_prateleira, 'OPCIONAL'  descricao, 20.15 capacidade, 2 profundidade from dual
  4              )
  5  select id_prateleira
  6        ,descricao
  7        ,capacidade
  8   from (select id_prateleira
  9               ,descricao
 10               ,profundidade
 11               ,capacidade
 12               ,row_number() over (partition by id_prateleira order by id_prateleira) lin
 13           from (select *
 14                   from tbl) tbl
 15          connect by level <= profundidade
 16            order by id_prateleira, profundidade)
 17    where lin <= profundidade;

ID_PRATELEIRA DESCRICAO CAPACIDADE
------------- --------- ----------
            1 PRINCIPAL       50,5
            1 PRINCIPAL       50,5
            1 PRINCIPAL       50,5
            2 OPCIONAL       20,15
            2 OPCIONAL       20,15
[]s!
dudu0566
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 74
Registrado em: Seg, 06 Ago 2007 3:59 pm
Localização: Campinas - SP
Eduardo Gomes

Boa tarde Cristiano ,

Desculpa a demora em responder.

Cara, ajudou pra caramba!!!! Excelente era o que precisava!!!!

Obrigado!!!!


abs
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes