Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Caros,
Preciso juntar 2 tabelas temporárias onde uma representa contratos inativos em Jan e a outra os contratos inativos em Fev, o problema é que na Tabela de Fev temos contratos que já foram cancelados em Janeiro e não de veriam aparecer para o mês de Fev, nesta tabela deveríamos ter apenas os contratos que realmente foram cancelados em Fevereiro, mas a duplicidade ainda permanece, minha ideia era fazer uma junção entre as tabelas onde os contratos que já estivessem na tabela de JAN não fossem adicionados na tabela final para o mês de fevereiro.
Neste caso estou tentado fazer com o concatenate com where not exist porém continua trazendo os contratod que já foram cancelados em janeiro para o mês de fevereiro:
/*- SCRIPT Abaixo*\
TEMP_JAN:
NoConcatenate
LOAD
*
FROM
[P:\Doc_Rel\Tabelas\QVDS\Tier 1\Fact Data\CONTRATOS_M_2019.qvd]
(qvd)
WHERE DATA_ANULACAO >= '01/01/2019'
AND MES = 01;
TEMP_FEV:
NoConcatenate
LOAD
*
FROM
[P:\Doc_Rel\Tabelas\QVDS\Tier 1\Fact Data\CONTRATOS_M_2019.qvd]
(qvd)
WHERE DATA_ANULACAO >= '01/02/2019'
AND MES = 02;
TEMP_2019:
EMP_2019:
NoConcatenate
LOAD *
Resident TEMP_JAN;
JOIN
LOAD *
Resident TEMP_FEV
where not Exists(CH_APOLICE_DTINICIO,NPOLIZA);
DROP TABLES TEMP_JAN, TEMP_FEV;
EXIT SCRIPT;
Então a solução que lhe dei inicialmente resolve o problema, só que ao invés de você comparar o mês irá comparar o ano-mês.
A solução seria o seguinte:
Tabela: * FROM [P:\Doc_Rel\Tabelas\QVDS\Tier 1\Fact Data\CONTRATOS_M_2019.qvd](qvd) WHERE ANOMES = Date(DATA_ANULACAO, 'YYYYMM') ;
Isso compara o Ano-Mês daquele registro com o que é gerado através da DATA_ANULACAO. Se forem iguais, mantém o registro, caso contrário, descarta.
Otavio,
Exatamente isso!
É o mês do ano essa informação já consta na tabela origem do banco, pois para outros casos, de contratos renovados, por exemplo, não temos a data e neste caso filtramos apenas pelo campo MES.
Por exemplo: Um registro que foi cancelado em Março, ele aparece em Abril, Maio, Junho etc. Essa coluna MES vai ter qual informação?
Se for 3 para todos os meses, então basta fazer o seguinte:
Tabela: * FROM [P:\Doc_Rel\Tabelas\QVDS\Tier 1\Fact Data\CONTRATOS_M_2019.qvd](qvd) WHERE MES = Num(Month(DATA_ANULACAO)) ;
Não, este campo faz referencia ao mês do registro na tabela JAN = 01, FEV = 02, MAR = 03...
Pode mandar uma amostra dos seus dados, está um pouco difícil de fazer uma solução.
Pode ser com dados fake, mas que exemplifique o seu problema.