Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
lucascerq
Contributor II
Contributor II

Função condicional de duas tabelas diferentes

Prezados,

Possuo duas tabelas, uma com informações relacionadas a manobras e outra relacionada a ocorrências, ambas possuem ligação através do campo "chave".

Preciso verificar se a "DATAOCORRENCIA" da base "Ocorrência" é maior ou igual a "[Data Início]" e menor ou igual "[Data Fim]" da base "Manobra". Por se tratar de duas tabelas diferentes o qlik não consegue localizar a [Data Início] e [Data Fim], gerando erro.

Como consigo fazer esta verificação?


if(DATAOCORRENCIA>=[Data Início] and DATAOCORRENCIA<=[Data Fim],'Sim','Não')

Manobra:

LOAD

Chave,

     [Atividade Antiga],

     [Atividade Nova],

     [Data Início],

     [Data Fim],

     [Data Inclusão],

     [Data Liberação],

     [Prefixo Trem],

     Pátio,

     [Pátio Destino],

     [Pátio Origem]

Ocorrência:

LOAD

Chave,

     PREFIXO,

     MAQUINISTA,

     MATRICULA,

     DATAOCORRENCIA,

     OCORRENCIA,

     PATIOORIGEM,

     PATIODESTINO,

     PATIOINICOCORRENCIA,

     PATIOFIMOCORRENCIA,

     Chave,

Labels (1)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Lucas, segue uma sugestão:

Lembrando que é importante entender a cardinalidade e o propósito das tabelas para poder ajustar o Join...

Temp_Ocorrência_Manobra:

//Ocorrência

LOAD

     Chave,

     PREFIXO,

     MAQUINISTA,

     MATRICULA,

     DATAOCORRENCIA,

     OCORRENCIA,

     PATIOORIGEM,

     PATIODESTINO,

     PATIOINICOCORRENCIA,

     PATIOFIMOCORRENCIA

From [SUA_FONTE_DADOS.QVD](qvd);

Outer Join

//Manobra

LOAD

     Chave,

     [Atividade Antiga],

     [Atividade Nova],

     [Data Início],

     [Data Fim],

     [Data Inclusão],

     [Data Liberação],

     [Prefixo Trem],

     Pátio,

     [Pátio Destino],

     [Pátio Origem]

From [SUA_FONTE_DADOS.QVD](qvd);

NoConcatenate

Tab_Ocorrência_Manobra:

Load

     *,

     If(DATAOCORRENCIA>=[Data Início] and DATAOCORRENCIA<=[Data Fim],'Sim','Não') As 'Situação'

Resident Temp_Ocorrência_Manobra;

Drop Table Temp_Ocorrência_Manobra;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

5 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Lucas, segue uma sugestão:

Lembrando que é importante entender a cardinalidade e o propósito das tabelas para poder ajustar o Join...

Temp_Ocorrência_Manobra:

//Ocorrência

LOAD

     Chave,

     PREFIXO,

     MAQUINISTA,

     MATRICULA,

     DATAOCORRENCIA,

     OCORRENCIA,

     PATIOORIGEM,

     PATIODESTINO,

     PATIOINICOCORRENCIA,

     PATIOFIMOCORRENCIA

From [SUA_FONTE_DADOS.QVD](qvd);

Outer Join

//Manobra

LOAD

     Chave,

     [Atividade Antiga],

     [Atividade Nova],

     [Data Início],

     [Data Fim],

     [Data Inclusão],

     [Data Liberação],

     [Prefixo Trem],

     Pátio,

     [Pátio Destino],

     [Pátio Origem]

From [SUA_FONTE_DADOS.QVD](qvd);

NoConcatenate

Tab_Ocorrência_Manobra:

Load

     *,

     If(DATAOCORRENCIA>=[Data Início] and DATAOCORRENCIA<=[Data Fim],'Sim','Não') As 'Situação'

Resident Temp_Ocorrência_Manobra;

Drop Table Temp_Ocorrência_Manobra;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Clever_Anjos
Employee
Employee

possivel solução

Mapa:

mapping load

Chave

     DATAOCORRENCIA

from seuqvd(qvd);

Manobra

LOAD

Chave,

     [Atividade Antiga],

     [Atividade Nova],

     [Data Início],

     [Data Fim],

     [Data Inclusão],

     [Data Liberação],

     [Prefixo Trem],

     Pátio,

     [Pátio Destino],

     [Pátio Origem],

    if(applymap('Mapa',Chave)>=[Data Início] and applymap('Mapa',Chave)<=[Data Fim],'Sim','Não') AS Flag

lucascerq
Contributor II
Contributor II
Author

Apresenta o seguinte erro:

Campo não encontrado - <Atividade Antiga>

Outer Join 

LOAD 

     Chave, 

     [Atividade Antiga], 

     [Atividade Nova], 

     [Data Início], 

     [Data Fim], 

     [Data Inclusão], 

     [Data Liberação], 

     [Prefixo Trem], 

     Pátio, 

     [Pátio Destino], 

     [Pátio Origem] 

FROM

(ooxml, embedded labels, table is [Ocorrências Freio Alívio])

lucascerq
Contributor II
Contributor II
Author

Funcionou com alguns detalhes.

Resultado final:

Manobra:

LOAD Chave,

     [Atividade Antiga],

     [Atividade Nova],

     [Cód. Atividade Antiga],

     [Cód. Atividade Nova],

     [Data Atualização],

     [Data Encerramento],

     [Data Início],

     [Data Inicial],

     [Data Fim],

     [Data Inclusão],

     [Data Liberação],

     Justificativa,

     [Prefixo Trem],

     Pátio,

     [Pátio Destino],

     [Pátio Origem]

FROM

(ooxml, embedded labels, table is [Manobra THP]);

Outer Join(Manobra)

Ocorrência:

LOAD LOCOMOTIVA,

     POSICAO,

     PREFIXO,

     MAQUINISTA,

     MATRICULA,

     DATAOCORRENCIA,

     [Data Ocorrência],

     OCORRENCIA,

     DIAMETRORODA,

     PATIOORIGEM,

     PATIODESTINO,

     PATIOINICOCORRENCIA,

     PATIOFIMOCORRENCIA,

     DESCRICAOUNIDADELOTACAO,

     DATAINICIOVIAGEMMAQUINISTA,

     DATAFIMVIAGEMMAQUINISTA,

     DATAPROCESSAMENTOCAIXAPRETA,

     EXIBICAOVALIDADA,

     EXIBICAOABONADA,

     MATRICULAINSPETOR,

     DESCRICAOJUSTIFICATIVAABONO,

     OBSERVACAOINSPETOR,

     Chave,

     Manobra?,

     [Data Inicial (Ocorrência)],

     [Data Final(Ocorrência)]

FROM

(ooxml, embedded labels, table is [Ocorrências Freio Alívio]);

NoConcatenate 

 

Manobra: 

Load 

     *, 

     If(DATAOCORRENCIA>=[Data Início] and DATAOCORRENCIA<=[Data Fim],'Sim','Não') As 'Situação' 

Resident Manobra; 

 

Drop Table Manobra; 

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Lucas;

Utilizei os campos de exemplo do anunciado...

Mas é necessário certificar os campos existentes na base de dados de cada tabela de origem para ajustar.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti