Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
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

Tags (1)
1 Solution

Accepted Solutions
cesaraccardi
Valued Contributor

Re: Como criar novos campos com base em outros campos existentes

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;

4 Replies
cesaraccardi
Valued Contributor

Re: Como criar novos campos com base em outros campos existentes

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;

Re: Como criar novos campos com base em outros campos existentes

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; 

Employee
Employee

Re: Como criar novos campos com base em outros campos existentes

Not applicable

Re: Como criar novos campos com base em outros campos existentes

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