Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Como relacionar campos de tabelas diferentes?

Olá,

Estou como uma dúvida, preciso criar novos campos com condições envolvendo campos de tabelas diferentes, conforme exemplo abaixo.

  1. --//Exemplo: 
  2. IF(QT_PRODUTO > 1, (QTDE_DISPONIVEL_PEDIDO + BASELINE), TEMPO_ADEQUACAO) as NOVO_CAMPO2 

Perceba que os campos QT_PRODUTO e QTDE_DISPONIVEL_PEDIDO são da primeira consulta (FollowUp) e o campo BASELINE é da segunda consulta (//BASE FUP_BASELINEv2.xlsx) e o campo TEMPO_ADEQUACAO é da sexta consulta (//BASE FUP_TEMPO ADEQUAÇÃO.xlsx).

Minha estrutura das tabelas:

FollowUp: 

        // Query Banco 

SELECT  LINHA_DE_NEGOCIO 

      , PROCESSO 

      , EXPORTADOR_SAP 

      , EXPORTADOR 

      , MEIO_TRANSPORTE 

      , NOME_EADI 

      , QT_PRODUTO 

      , QTDE_DISPONIVEL_PEDIDO 

  FROM PROCESSOS_CLIENTES; 

   

//BASE FUP_BASELINEv2.xlsx 

LOAD @1 as LINHA_DE_NEGOCIO, 

     @2 as EXPORTADOR, 

     @3 as EXPORTADOR_SAP, 

     @4 as MEIO_TRANSPORTE, 

     @5 as BASELINE, 

     @6 as TT_TARGET 

FROM 

 

(ooxml, no labels, table is BaseBaseline, filters(Remove(Row, Pos(Top, 1)))); 

 

//BASE FUP EXCECOES.xlsx 

LOAD @1 as PROCESSO, 

     @2 as DATASREVISADAS, 

     @3 as TEMPOPARADATA, 

     @4 as MOTIVO, 

     @5 as LINHA_DE_NEGOCIO 

FROM 

 

(ooxml, no labels, table is Base_Excecoes, filters(Remove(Row, Pos(Top, 1)))); 

 

//BASE FUP_FASES.xlsx 

LOAD @1 as LINHA_DE_NEGOCIO, 

     @2 as EXPORTADOR_SAP, 

     @3 as LINHA_NEGOCIO_x_EXP_SAP, 

     @4 as INVOICING, 

     @5 as DOCS_RECEIVE, 

     @6 as REQUESTING_LI, 

     @7 as PROTOCOLING_LI_PRE, 

     @8 as WAITING_LI_PRE, 

     @9 as AUTORIZ_SHIPPING, 

     @10 as PRE_ALERT_WAIT, 

     @11 as INTERNL_TRANSIT, 

     @12 as SHIPM_T_ARRIVAL_ACKNOL, 

     @13 as PROTOCOLING_LI_POST, 

     @14 as WAITING_LI_POST, 

     @15 as REGISTERING_DI, 

     @16 as CLEARING_CUSTOMS, 

     @17 as WAITING_WH_REQUEST, 

     @18 as DELIVERING, 

     @19 as DELIVERED, 

     @20 as BASELINE_FUP_FASES, 

     @21 as T_T 

FROM 

 

(ooxml, no labels, table is BaseFases, filters(Remove(Row, Pos(Top, 1)))); 

 

//BASE FUP_TEMPO ANVISA.xlsx 

LOAD @1 as NOME_EADI, //RECINTO_ALFANDEGADO 

     @2 as ANVISA_BASELINE 

FROM 

 

(ooxml, no labels, table is BaseTempoAnvisa, filters(Remove(Row, Pos(Top, 1)))); 

 

//BASE FUP_TEMPO ADEQUAÇÃO.xlsx 

LOAD @1 as LINHA_DE_NEGOCIO, 

     @2 as FRANQUIA, 

     @3 as GRUPO, 

     @4 as TEMPO_ADEQUACAO 

FROM 

 

(ooxml, no labels, table is BaseTempoAdequação, filters(Remove(Row, Pos(Top, 1)))); 

Muito obrigado!

Jean Carvalho Silva

Labels (1)
1 Solution

Accepted Solutions
nicolett_yuri

Jean, para isso você terá que juntar suas tabelas e depois fazer a comparação de campos.

Como podemos juntar as tabelas: JOIN ou CONCATENATE.

Para reler uma tabela que foi criada após o JOIN ou CONCATENATE? Load Resident.

Por exemplo:

Fato_Temp:

LOAD

     A,

     B,

     C

FROM Tabela1.qvd (qvd);

LEFT JOIN

LOAD

     A,

     D

FROM Tabela2.qvd (qvd);

Fato:

LOAD

     A,

     B,

     C,

     D,

     IF( A > 3 AND D<5, 10, 20) as CAMPO_NOVO

RESIDENT Fato_Temp;

DROP TABLE Fato_Temp;

View solution in original post

2 Replies
nicolett_yuri

Jean, para isso você terá que juntar suas tabelas e depois fazer a comparação de campos.

Como podemos juntar as tabelas: JOIN ou CONCATENATE.

Para reler uma tabela que foi criada após o JOIN ou CONCATENATE? Load Resident.

Por exemplo:

Fato_Temp:

LOAD

     A,

     B,

     C

FROM Tabela1.qvd (qvd);

LEFT JOIN

LOAD

     A,

     D

FROM Tabela2.qvd (qvd);

Fato:

LOAD

     A,

     B,

     C,

     D,

     IF( A > 3 AND D<5, 10, 20) as CAMPO_NOVO

RESIDENT Fato_Temp;

DROP TABLE Fato_Temp;

Not applicable
Author

nicolett.yuri

Deu certo, muito obrigado pela ajuda.

Abs,