Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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,
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;
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;
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
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])
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;
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.