8 Replies Latest reply: Jun 18, 2016 11:07 AM by Clever Anjos RSS

    Primeiro Registro

    Rafael Limeira

      Pessoal,

       

      Saberiam me dizer se tem como pegar somente o primeiro registro de uma tabela no script, exemplo:

       

      Cliente ID          Controle

       

      100                     0101101

      100                     0101102

      200                     0201101

      200                     0201102

       

      Seguindo o exemplo acima precisaria dos itens 0101101 para o Cliente 100 e 0201101 para o Cliente 200. Saberiam me dizer se há esta possibilidade?

       

      Abraço,

       

      Rafael

        • Re: Primeiro Registro
          Joao Ferreira

          Boa tarde Rafael,

           

          Tem como sim. Primeiro você deve entender qual o padrão das cargas e registros nesta tabela. No seu exemplo postado pelo que percebi os registros seguem uma ordem numérica, certo?

           

          No exemplo 01, 02 e assim por diante.

          Basta você filtrar na tabela de Clientes apenas os com final de controle 01, caso não seja necessário os demais registros. Assim você deve carregar apenas os registros 01, que significaria o primeiro registro.

           

          Att,

                João Carlos Ferreira.

            • Re: Primeiro Registro
              Rafael Limeira

              João,

               

              Obrigado pelo retorno, contudo, o exemplo que dei foi apenas esporádico. A base que eu preciso não um lógica, já que são telefones de Clientes. A ideia seria verificar se existe alguma fórmula que faça a leitura e agregação aos determinados clientes através do primeiro número localizado.

               

              Abraço,

               

              Rafael

            • Re: Primeiro Registro
              Raphael Pacheco

              Boa tarde Rafael. Veja se este exemplo lhe atende. Basicamente estou agrupando o valor do Cliente ID e pegando apenas o valor mínimo de controle.

               

              Abs.

              • Re: Primeiro Registro
                Raphael Pacheco

                Claro.

                 

                Bom, o script é in line, por isso tive que fazer dois loads. Mas depois você ajusta a sua realidade:

                 

                Teste:

                LOAD * Inline [

                Cliente ID, Controle

                100, 0101101

                100, 0101102

                200, 0201101

                200, 0201102

                ];

                 

                 

                Final:

                LOAD

                  [Cliente ID],

                  Min(Controle) as Controle

                Resident Teste

                Group By

                  [Cliente ID];

                 

                 

                DROP Table Teste;

                DROP Field x From Final;

                  • Re: Primeiro Registro
                    Rafael Limeira

                    Opa, obrigado!

                     

                    Mas pelo que entendi você pegou o menor dado. Contudo, como aplicação real estou analisando número de telefones, ou seja, nem sempre o menor número será o primeiro registro.

                     

                    Da maneira acima eu conseguiria contornar esta situação ou seria necessário outra ação?

                     

                    Abraço!

                     

                    Rafael

                      • Re: Primeiro Registro
                        Raphael Pacheco

                        Hum... entendi.

                        Tem uma outra opção.

                         

                        Teste:

                        LOAD * Inline [

                        Cliente ID, Controle

                        100, 0101101

                        100, 0101102

                        200, 0201101

                        200, 0201102

                        ];

                         

                        Inicial:

                        LOAD

                          RecNo() as Sequencial,

                          [Cliente ID],

                          Controle

                        Resident Teste;

                         

                        DROP Table Teste;

                         

                        Final:

                        LOAD

                          '1' as x,

                          [Cliente ID],

                          Min(Controle) as Controle,

                          Min(Sequencial) as Sequencial

                        Resident Inicial

                        Group By

                          [Cliente ID];

                         

                        DROP Table Inicial;

                        DROP Field x From Final;

                         

                        Perceba que eu continuo usando o Min() no Controle, mas se for telefone e esse valor for igual para o cliente você pode usar a função Only() no lugar.

                         

                        Abs

                    • Re: Primeiro Registro
                      Clever Anjos

                      Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada

                      Have fun, be Qlik