Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá,
Estou como uma dúvida, preciso criar novos campos com condições envolvendo campos de tabelas diferentes, conforme exemplo abaixo.
- --//Exemplo:
- 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
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;
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;