Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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;
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;
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;
CesarAccardi e nicolett.yuri, 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