5 Replies Latest reply: Feb 28, 2018 6:54 AM by Mario Sergio Medeiros Soares RSS

    Função condicional de duas tabelas diferentes

    Lucas Cerqueira

      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,

        • Re: Função condicional de duas tabelas diferentes
          Mario Sergio Medeiros Soares

          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;
          
          
          
            • Re: Função condicional de duas tabelas diferentes
              Lucas Cerqueira

              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

              [C:\Users\99003685\Desktop\Projeto Aplicativo\2018\Manobra THP - Cópia.xlsx]

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

              • Re: Função condicional de duas tabelas diferentes
                Lucas Cerqueira

                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

                [C:\Users\99003685\Desktop\Projeto Aplicativo\2018\Manobra THP - Cópia.xlsx]

                (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

                [C:\Users\99003685\Desktop\Projeto Aplicativo\2018\Manobra THP - Cópia.xlsx]

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

              • Re: Função condicional de duas tabelas diferentes
                Clever Anjos

                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