3 Replies Latest reply: Apr 16, 2015 2:11 PM by Yuri Nicolett RSS

    Chave contida em um intervalo

    Rodolfo Barbosa

      Bom dia Senhores, estou modelando uma aplicação que tem com funcionalidade apresentar uma tabela onde uma das colunas é o valor de reajuste realizados no contratos, porém com isso surgiu uma dificuldade, são muitos contratos e o sistema cadastra esses reajustes em intervalos, por exemplo:

       

      Rejuste - 1

      Contrato Inicial - A

      Contrato Final - J

       

      Com isso não consegui imaginar uma maneira de relacionar a chave de contratos com a chave de reajustes, buscar no intervalo sabe ?

       

      Alguém já fez algo parecido ?

        • Re: Chave contida em um intervalo
          Yuri Nicolett

          Rodolfo, da uma pesquisada na função IntervalMatch, ele trabalha com o JOIN dentro de intervalos.

           

          Exemplo de código do IntervalMatch

           

          Grade:
          LOAD * INLINE [
          Min,Max,Grade
          0,34,E
          35,40,D
          40,60,C
          60,80,B
          80,100,A
          ];
          Notas:
          LOAD * INLINE [
          Nota,Aluno
          30,Yuri
          50,Edson
          99,Alan
          10,Geraldo
          93,Henrique
          ];
          LEFT JOIN
          IntervalMatch(Nota)
          LOAD
          Min, //Primeiro o menor
          Max  //depois o maior
          RESIDENT Grade;
            • Re: Chave contida em um intervalo
              Rodolfo Barbosa

              Boa tarde Yuri, consegui chegar em um resultado muito próximo do que preciso:

               

              O script com base no seu ficou assim:

               

              Reajuste:

              LOAD NRREAJUSTE,

                  NRCONTRATO_INI,

                  NRCONTRATO_FIM,

                  NRPERIODO_VENCTO_REAJUSTE,

                  NRPERIODO_VIGENCIA_REAJUSTE,

                  NRPERIODO_PROXIMO_REAJUSTE,

                  CDSITUACAO_REAJUSTE,

                  VLINDICE_MENSALIDADE,

                  VLINDICE_INSCRICAO  

              FROM

              [...\REAJUSTE.qvd]

              (qvd);

               

              //O QVD Carregado abaixo trás uma relação entre o reajuste mais recente e o contrato referente a ele.

              Contratos:

              LOAD NRREAJUSTE,

                  NRCONTRATO

              FROM

              [...\\REAJUSTE_CONTRATO.qvd]

              (qvd);

               

              LEFT JOIN

              IntervalMatch(NRCONTRATO)

              LOAD

                  NRCONTRATO_INI, //Primeiro o menor - No meu caso contrato inicial

                  NRCONTRATO_FIM  //depois o maior  -No meu caso contrato final

              RESIDENT Reajuste;

               

               

              Porém parece que ele pula uma linha, ou deixa um relacionamento vazio para cada contrato

               

              print qlik brasil.jpg

                • Re: Chave contida em um intervalo
                  Yuri Nicolett

                  Rodolfo, a primeira tabela que você carregar coloca somente as colunas: NRREAJUSTE, NRCONTRATO_INI e NRCONTRATO_FIM. Dessa forma:

                   

                  Reajuste:

                  LOAD

                      DISTINCT

                      NRREAJUSTE,

                      NRCONTRATO_INI,

                      NRCONTRATO_FIM

                  FROM

                  [\\10.0.8.35\PLanner\Aplicações\QVD\Transformação\Analise Comercial\REAJUSTE.qvd]

                  (qvd);