Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Como criar novos campos com base em outros campos existentes

Olá,

Eu sou novato no desenvolvimento com a ferramenta QlikView, a minha pergunta acredito que seja simples.

Eu tenho a seguinte estrutura:

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

Eu preciso saber como criar novos campos com base em campos existentes nestas outras seis tabelas.

Exemplo: Para compor uma nova coluna (não existente em nenhuma das minhas tabelas acima) de nome "QTY", eu tenho a seguinte condição IF(PROCESSO = '', QT_PRODUTO, QTDE_DISPONIVEL_PEDIDO).

Como fazer isso? Ajudem-me, por favor.

Muito obrigado,

Jean Carvalho Silva

Labels (3)
1 Solution

Accepted Solutions
cesaraccardi
Specialist
Specialist

Ola Jean,

Basta modificar o script de carga da primeira tabela, adicionando as linhas em negrito:

FollowUp:

LOAD

     *,

     IF(PROCESSO = '', QT_PRODUTO, QTDE_DISPONIVEL_PEDIDO) as QTY;

SELECT  LINHA_DE_NEGOCIO 

      , PROCESSO 

      , EXPORTADOR_SAP 

      , EXPORTADOR 

      , MEIO_TRANSPORTE 

      , NOME_EADI 

      , QT_PRODUTO 

      , QTDE_DISPONIVEL_PEDIDO 

  FROM PROCESSOS_CLIENTES;

View solution in original post

4 Replies
cesaraccardi
Specialist
Specialist

Ola Jean,

Basta modificar o script de carga da primeira tabela, adicionando as linhas em negrito:

FollowUp:

LOAD

     *,

     IF(PROCESSO = '', QT_PRODUTO, QTDE_DISPONIVEL_PEDIDO) as QTY;

SELECT  LINHA_DE_NEGOCIO 

      , PROCESSO 

      , EXPORTADOR_SAP 

      , EXPORTADOR 

      , MEIO_TRANSPORTE 

      , NOME_EADI 

      , QT_PRODUTO 

      , QTDE_DISPONIVEL_PEDIDO 

  FROM PROCESSOS_CLIENTES;

nicolett_yuri

Jean, você pode usar o recurso do pre-load, por exemplo:

FollowUp: 

LOAD *,

if( PROCESSO = '', QT_PRODUTO, QTDE_DISPONIVEL_PEDIDO) as CAMPO_NOVO;

SELECT  LINHA_DE_NEGOCIO 

      , PROCESSO 

      , EXPORTADOR_SAP 

      , EXPORTADOR 

      , MEIO_TRANSPORTE 

      , NOME_EADI 

      , QT_PRODUTO 

      , QTDE_DISPONIVEL_PEDIDO 

  FROM PROCESSOS_CLIENTES; 

Not applicable
Author

e , deu certo, muito obrigado pela ajuda!

Foi mais fácil do que imaginava, muito bom!

Agora, ainda no mesmo assunto, surgiu outra dúvida, neste caso que vocês me explicaram, estou criando um novo campo com base em uma condição envolvendo todos os campos do mesmo script, como faria na situação 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).

Mais uma vez, muito obrigado!

Jean Carvalho Silva