Skip to main content
Announcements
Qlik Acquires Upsolver to Advance Iceberg Solutions: READ MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Greco2304
Contributor II
Contributor II

Juntar tabelas com condição

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;

1 Solution

Accepted Solutions
marco_almeida
Creator II
Creator II

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.

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ

View solution in original post

15 Replies
marco_almeida
Creator II
Creator II

Particularmente não entendi o seu problema rs.
Aparentemente você uma tabela fato apenas contendo todos os contratos cancelados. Porém ele é acumulativo, ou seja, contratos cancelados em Janeiro aparecem em Fevereiro também. O seu problema é remover esses registros afim de manter contratos cancelados apenas em seus respectivos períodos. É isso?
Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
Greco2304
Contributor II
Contributor II
Author

Otavio,

Exatamente isso!

marco_almeida
Creator II
Creator II

Certo. Essa coluna MES, o que significa?
Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
Greco2304
Contributor II
Contributor II
Author

É 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.

marco_almeida
Creator II
Creator II

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))
;

 

 

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
Greco2304
Contributor II
Contributor II
Author

Não, este campo faz referencia ao mês do registro na tabela JAN = 01, FEV = 02, MAR = 03...

marco_almeida
Creator II
Creator II

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.

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
Greco2304
Contributor II
Contributor II
Author

 
marco_almeida
Creator II
Creator II

Manda uma amostra dos dados, não o script rs.
Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ