2 Replies Latest reply: Aug 26, 2014 6:50 PM by Felipe Dutra RSS

    Duvida - Indirect Set Analysis

      Boa tarde!

      Tenho uma tabela que armazena histórico dos dados de um arquivo que recebo diariamente.

       

      No primeiro arquivo do mês tenho uma base de CPFs ativos que irei trabalhar o mês inteiro.

      Nos próximos dias recebo a base com atualizações. Se algum CPF der baixa não aparece no próxima arquivo, se algum CPF der entrada, é incluso no próximo.

      Para medir a eficiência dos CPFs do primeiro arquivo do mês, preciso verificar se eles se encontram no ultimo arquivo do mês

      ou seja, preciso dos CPFs do primeiro arquivo que não se encontram no ultimo.

       

      As regras para pegar a base que será trabalhada São:

       

      DATA_ARQ = data do arquivo, no caso, o primeiro arquivo do mês

      CPF = Não pode conter os CPFs que entraram no mês anterior

      UF = Diferente de Acre

       

      Então, para pegar a base em que trabalharei utilizo a expressão:

      =SUM

      (

        {1<

             CONS.DATA_ARQ = {'$(@MIN_DT_CONS_MES)'}

             ,CONS.CPF = E({< ENTR.MES_ENTRADA = {$(@MES_ANTERIOR)} >}CONS.CPF)

             ,CONS.UF -= {'AC'}

        >} CONS.QTD

      ) //Retorna aprox 70.000 - OK

       

      Como faço para saber, desta base, os CPFs que não se encontram no arquivo do ultimo dia?

      Estou utilizando a expressão abaixo, mas não está correta...

      =SUM

      (

        {1<

            CONS.DATA_ARQ = {'$(@MIN_CONS_MES)'}

             ,CONS.UF -= {'AC'}

             , CONS.CPF = E({<CONS.DATA_ARQ = {'$(@MAX_DT_CONS_MES)'}>}CONS.CPF)

             ,CONS.CPF = E({< ENTR.MES_ENTRADA = {$(@MES_ANTERIOR)} >} CONS.CPF)

        >} CONS.QTD

      ) // Retorna aprox  70.000 - No Excel, comparando as bases na mão o valor correto seria de aprox. 2.000 CPFs

       

      Alguém poderia ajudar?

       

      Abraço!

        • Re: Duvida - Indirect Set Analysis
          Luiz Cláudio Gomes

          Boa tarde Daniel

           

          Já tentou fazer a verificação no momento da carga?

          Usando a função exists ??

           

          Luiz Cláudio

          • Re: Duvida - Indirect Set Analysis
            Felipe Dutra

            Daniel,

             

            É melhor fazer isso no scripr.

             

            Ex:

            Crie uma tabela lendo os CPFs do primeiro dia do Mês.

            Crie uma tabela lendo os CPFs do último dia do Mês com um Flag (Ex: 1 as Flag_CPF_Presente)  e faça um left join na tabela anterior.

             

            Desta forma, apenas os CPFs com o Flag_CPF_Presente=1 estavam presentes na primeira e na última tabela do do mês.

             

            Considero esta a forma mais fácil de exemplificar e por isso a citei, mas se quiser um desempenho melhor, pesquise sobre Mapping ou função Exists().

             

            Abs,

            Felipe