Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik GA: Multivariate Time Series in Qlik Predict: Get Details
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;

15 Replies
Greco2304
Contributor II
Contributor II
Author

Desculpe anexei o arquivo errado!!

marco_almeida
Creator II
Creator II

Show. Agora sim hehe..

Exemplo:

  • NPOLIZA = 0F0290601836
  • DATA_ANULACAO = 26/05/2019

Esse caso possui informação ANOMES de 201901 até 201912. Nesse caso, qual registro seria o correto manter e quais devem ser descartados?

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

Neste caso o que eu quero manter são os registros do ANOMES 201905, pois a data de anulação dele ocorreu em Maio, se houver mais de um para este mesmo mês não tem problema ele reprtir pois há outros campos que podem ser alterados, mas para os demais meses não precisam ser descartados.

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
danilostochi
Creator II
Creator II

Boa noite, estava analisando seu load e não identifiquei as colunas CH_APOLICE_DTINICIO,NPOLIZA já que você tem uma instrução de not Exists (CH_APOLICE_DTINICIO,NPOLIZA)

Tente posta seus dados de origem ou crie em Excel de dados de exemplo.

pelo pouco que consegui analisar de seu .qvf, você poderia concatenar tudo de filtrar no resident where.

 

temp_2019:
LOAD
campos //seuscampos
FROM
[C:\Users\Danilo\Downloads\jan.xlsx]
(ooxml, embedded labels, table is Document_TB01) where DATA_ANULACAO >= '01/01/2019' and MES = '01';
Concatenate(temp_2019)
LOAD

campos //seus campos

FROM
[C:\Users\Danilo\Downloads\fev.xlsx]
(ooxml, embedded labels, table is Document_TB01) where DATA_ANULACAO >= '01/01/2019' and MES = '02';

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com
Greco2304
Contributor II
Contributor II
Author

Danilo, estarei fora do escritório hoje, mas já postei uma amostra dos dados no histórico deste tópico. Se puder verificar eu lhe agradeço. Grato pela sua ajuda.