Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Prezados, boa noite!
Estou efetuando uma carga de dados de 2017 e de 2018 que estão em QVDs separados por meses, porém, gostaria de separa-los em tabelas (tabela 2017 e tabela 2018) para trabalhar facilmente com os dados, porém, ao usar a carga com dois "For" o qlik não está entendendo que quero separar os dados e armazena tudo na primeira tabela "AnoAnterior:", conforme exemplo abaixo:
Segue script:
////// 2017 Exemplo
Let VsAnoAtual = Year(Today());
Let VsAnoAnterior = Year(Today())-1;
for v_ano = VsAnoAnterior to VsAnoAnterior
for v_mes = 01 to 01
v_mes_f = Num(v_mes, '00')
IF FileSize('lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD') > 0 THEN
Trace CARREGANDO ANO $(v_ano) MES $(v_mes_f);
AnoAnterior: //// TABELA REFERENTE AO ANO DE 2017
LOAD
DATA,
NRO_EMPRESA,
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
QTDE,
VALOR,
SK_CATEGORIA
FROM [lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD](qvd)
WHERE NRO_EMPRESA < 500;
ELSE
Trace O QVD de ANO $(v_ano) MES $(v_mes_f) Não existe....;
ENDIF;
next
next
///////////////////////////////////////////////////////////////////////////////////// SEGUNDO SCPRIT//////////////////////////////////////
for v_ano = VsAnoAtual to VsAnoAtual
for v_mes = 01 to 12
v_mes_f = Num(v_mes, '00')
IF FileSize('lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD') > 0 THEN
Trace CARREGANDO ANO $(v_ano) MES $(v_mes_f);
AnoAtual: //// TABELA REFERENTE AO ANO DE 2018
LOAD
DATA,
NRO_EMPRESA,
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
QTDE,
VALOR,
SK_CATEGORIA
FROM [lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD](qvd)
WHERE NRO_EMPRESA < 500;
ELSE
Trace O QVD de ANO $(v_ano) MES $(v_mes_f) Não existe....;
ENDIF;
next
next
Bom dia
Utiliza NoConcatenate antes do nome da tabela AnoAtual
NoConcatenate AnoAtual: //// TABELA REFERENTE AO ANO DE 2018
LOAD
DATA,
NRO_EMPRESA,
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
QTDE,
VALOR,
SK_CATEGORIA
FROM [lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD](qvd)
WHERE NRO_EMPRESA < 500;
Bom dia
Utiliza NoConcatenate antes do nome da tabela AnoAtual
NoConcatenate AnoAtual: //// TABELA REFERENTE AO ANO DE 2018
LOAD
DATA,
NRO_EMPRESA,
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
QTDE,
VALOR,
SK_CATEGORIA
FROM [lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD](qvd)
WHERE NRO_EMPRESA < 500;
Elvis, bom dia!
Deu certo, muito obrigado!!
Att,
Elvis, boa tarde!
Na verdade o "NoConcatenate" deu certo parcialmente.
O Qlik não concatena as tabelas, porém, quando uso com o FOR, ele cria uma tabela interna para cada mês.
Segue anexo exemplo.
for v_ano = VsAnoAtual to VsAnoAtual
for v_mes = 01 to 03
v_mes_f = Num(v_mes, '00')
IF FileSize('lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD') > 0 THEN
Trace CARREGANDO ANO $(v_ano) MES $(v_mes_f);
NoConcatenate
AnoAtual: //// TABELA REFERENTE AO ANO DE 2018
LOAD
DATA,
NRO_EMPRESA,
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
QTDE,
VALOR,
SK_CATEGORIA
FROM [lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD](qvd)
WHERE NRO_EMPRESA < 500
;
ELSE
Trace O QVD de ANO $(v_ano) MES $(v_mes_f) Não existe....;
ENDIF;
next
next
Outra forma é você retirar o NoConcatenate da tabela AnoAtual inserir uma coluna fake no primeiro for que tem a tabela AnoAnterior para a estrutura das tabela ficarem diferentes, e depois de rodar o segundo for excluir a coluna fake. Ex:
////// 2017 Exemplo
Let VsAnoAtual = Year(Today());
Let VsAnoAnterior = Year(Today())-1;
for v_ano = VsAnoAnterior to VsAnoAnterior
for v_mes = 01 to 01
v_mes_f = Num(v_mes, '00')
IF FileSize('lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD') > 0 THEN
Trace CARREGANDO ANO $(v_ano) MES $(v_mes_f);
AnoAnterior: //// TABELA REFERENTE AO ANO DE 2017
LOAD
DATA,
NRO_EMPRESA,
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
QTDE,
VALOR,
SK_CATEGORIA,
'1' as CampoDiferenciaEstrutura
FROM [lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD](qvd)
WHERE NRO_EMPRESA < 500;
ELSE
Trace O QVD de ANO $(v_ano) MES $(v_mes_f) Não existe....;
ENDIF;
next
next
for v_ano = VsAnoAtual to VsAnoAtual
for v_mes = 01 to 03
v_mes_f = Num(v_mes, '00')
IF FileSize('lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD') > 0 THEN
Trace CARREGANDO ANO $(v_ano) MES $(v_mes_f);
//NoConcatenate
AnoAtual: //// TABELA REFERENTE AO ANO DE 2018
LOAD
DATA,
NRO_EMPRESA,
SEQPRODUTO,
NRO_SEGMENTO,
CGO,
QTDE,
VALOR,
SK_CATEGORIA
FROM [lib://DADOS/VDA_VendaDia_$(v_ano)_$(v_mes_f).QVD](qvd)
WHERE NRO_EMPRESA < 500
;
ELSE
Trace O QVD de ANO $(v_ano) MES $(v_mes_f) Não existe....;
ENDIF;
next
next
Drop Field CampoDiferenciaEstrutura;