Intervalos Adjacentes

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
taticgarcia
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qui, 07 Out 2010 10:52 am
Localização: São Bernardo do Campo
taticgarcia

olá Pessoal,
Preciso montar uma lógica que me traga os intervalos adjacentes
Tem como alguém me dar uma luz...

Por exemplo: Tenho os números 1, 2, 3, 4, 6 e 8. Eles teriam que vir da seguinte forma: 1-4, 6, 8.

Abçs
Tatiana Garcia
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

E como estão dispostos esses dados 1, 2, 3, 4, 6 e 8?

São linhas de uma tabela? Você quer gerar linhas "comprimindo" os intervalos contínuos?
taticgarcia
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qui, 07 Out 2010 10:52 am
Localização: São Bernardo do Campo
taticgarcia

Então... esses valores estão vindo em um cursor... são números de nota fiscal... porém, como é uma quantia muito grande de nfs, temos que enviá-las em um intervalo adjacente como coloquei no exemplo.

Obrigada pela ajuda...

Tatiana Garcia
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Desculpa, não consegui entender como ajudar você. Você quer ajuda para modificar um programa que já existe? Criar um novo?

Ou escrever um SQL para gerar um relatório/planilha/file com esses dados trabalhados, extraindo de uma tabela?

O cursor que você se refere lê dados de tabelas? De repente se postar um exemplo de como é sua tabela/dados, ou do seu código PL/SQL fica mais fácil de entender.
taticgarcia
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qui, 07 Out 2010 10:52 am
Localização: São Bernardo do Campo
taticgarcia

Olá fsitja.. obrigada pelo interesse em me ajudar... mas já consegui montar meu script... rsrs...
Ficou assim

Selecionar tudo

 
        vdocFis := null;
        vnum_ant := null;
        vmonta_linha := null;
        for docFis in ConjNotaFiscal (mcod_empresa,
                                                 p_cod_estab,
                                                 ) loop
        
           if vdocfis is null then 
              vdocfis := docfis.num_docfis;
              vnum_ant := docfis.num_docfis;
           else
              vnum_prox := vnum_ant + 1;
              
              if docfis.num_docfis = vnum_prox then
                 vnum_ant := docfis.num_docfis;
              else
                 if vdocfis <> vnum_ant then
                    vdocFis := vdocFis || '-' || vnum_ant;
                    vmonta_linha := vmonta_linha || ',' || vdocfis;
                    vnum_ant := docfis.num_docfis;
                    vdocfis := docfis.num_docfis;
                 else
                    vmonta_linha := vmonta_linha || ',' || vdocfis;
                    vnum_ant := docfis.num_docfis;
                    vdocfis := docfis.num_docfis;
                 end if;                   
              end if;
           end if;      
           
           vmonta_linhafim := vmonta_linha || ',' || docfis.num_docfis;   
                                           
        end loop;
Valeu...
Tatiana Garcia
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Bing [Bot], Google Adsense [Bot] e 3 visitantes