Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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!
Boa tarde Daniel
Já tentou fazer a verificação no momento da carga?
Usando a função exists ??
Luiz Cláudio
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