4 Replies Latest reply: Mar 10, 2016 12:28 PM by Kleiton Moraes RSS

    Selecionar o maior valor em um campo

    Kleiton Moraes

      Prezados,

      Boa tarde!

       

      Estou dando os primeiros passos no QlikView e me deparei com o seguinte cenário:

      Possuo as seguintes tabelas:

       

      CONTRATO

      FONTE_RECURSO_CONTRATO

       

      Um determinado contrato pode está associado a mais de uma fonte de recurso (FONTERECUR_CD), nesse caso devo verificar qual o maior valor do campo GDPCONTR_SQ e utilizar a Fonte de Recurso associada a ele.

       

      FONTERECUR_CDFONTERECUR_SQCONTR_NUGDPCONTR_SQVALOR
      010300285111010110
      01030028512101015
      01320000001101021
      014000285131010310

       

      Dei uma pesquisada e os exemplos recomendam utilizar a função Max()recebendo uma agregação, realizei algumas tentativas aqui mas sem sucesso, vocês possuem alguma sugestão de como devo proceder? algum exemplo mais prático?

       

      Segue o LOAD da tabela

       

      FONTE_RECURSO_CONTRATO:

      LOAD

           FONTERECUR_CD,

           FONTERECUR_SQ,

           CONTR_NU,

           CONTR_SQ,

           VALOR

      FROM

      [D:\Dados\Estudos\FONTE_RECURSO_CONTRATO]

      (qvd);

       

      Obrigado!

        • Re: Selecionar o maior valor em um campo
          Fábio Nakashigue

          Kleiton,

           

          Ok. Mas neste caso qual devo utilizar?

           

          FONTERECUR_CD, FONTERECUR_SQ, CONTR_NU, GDPCONTR_SQ, VALOR

              0103002851,                   1,                          1010,                1,                10

              0103002851,                   2,                          1010,                1,                 5

           

          Abs.

          Fabio Nakashigue

            • Re: Selecionar o maior valor em um campo
              Kleiton Moraes

              Fábio,

              Boa tarde!

               

              Desculpe pelo erro, acabei esquecendo de um campo importante nessa validação. (FTRECCONTR_IN_EXC_LOGICA)

              Para esse campo devo validar qual registro está como N.

               

              Acredito que consegui o resultado esperado tratando dessa forma:

               

              FONTE_RECURSO_CONTRATO:

              LOAD

                   FONTERECUR_CD,

                   FONTERECUR_CD & '|' & FONTERECUR_SQ & '|' & GDPCONTR_NU as Chave,

                   GDPCONTR_SQ,

                   FTRECCONTR_IN_EXC_LOGICA,

                   FONTERECUR_SQ,

                   GDPCONTR_NU,

                   FTRECCONTR_VL_ASSINADO

              FROM

              [D:\Dados\Estudos\FONTE_RECURSO_CONTRATO]

              (qvd);

               

              Inner Join  (FONTE_RECURSO_CONTRATO)

              LOAD

                   MAX(GDPCONTR_SQ) as GDPCONTR_SQ,

                   GDPCONTR_NU

                   Resident FONTE_RECURSO_CONTRATO

              where FTRECCONTR_IN_EXC_LOGICA = 'N'

              group by GDPCONTR_NU;

               

              GDP_CONTRATO:

              LOAD

                   CONTR_NU as [Numero do Contrato],

                   CONTR_NU & '|' & GDPCONTR_SQ as ChaveContrato,

                   TPORICONTR_CD as ChaveTipoOrigemContrato,

                   ORIGDIVD_CD as ChaveOrigemDivida,

                   GDPCONTR_NM,

                   ORG_ID,

                   PTOATEND_CD,

                   CONTABAN_NU,

                   UG_CD,

                   GESTAO_CD,

              FROM

              [D:\Dados\Estudos\CONTRATO.QVD]

              (qvd);

               

              Você utilizou outra forma para retornar essa informação?

              Obrigado pela ajuda!