Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
nprospero
Contributor
Contributor

Fatiamento Arquivo em Ano/Mes

Bom dia, por favor uma ajuda.

Tenho que fazer carga incremental, onde tenho uma coluna no meu qvd chamada dat_ref_carga que a utilizo para ver a ultima data que carreguei da origem.

Eu preciso fatiar (separar) o arquivo em AnoMes desta dat_ref_carga. O problema são nos finais e inicio de mes, porque irá acontecer de por exemplo estar no dia 02/10 e o script trazer informações de 29/09, 30/09, 01/10 e 02/10.

Eu preciso salvar o arquivo qvd no formato: NomeTabela_YYYYMM.

Lembrando que a carga tem que ser incremental, porque se se fosse de outra maneira eu sempre iria ler os 2 ultimos meses e matava o problema.

Alguem passou por isso e pode me dar uma ajuda por favor ?

Obrigado,

Nilton.

 

3 Replies
paulinhok14
Creator
Creator

Olá

"O problema são nos finais e inicio de mes, porque irá acontecer de por exemplo estar no dia 02/10 e o script trazer informações de 29/09, 30/09, 01/10 e 02/10."

Por que isso é um problema? Não entendi

elvis_schwarz
Creator
Creator

Olá Nilton

Você terá que fazer um IF para verificar se o dia é igual a data que faz a virada do mês e caso a condição seja verdadeira você faz 2 stores o 1º para guardar o QVD com os dados do mês anterior e o segundo com o mês atual.
Seria algo tipo

 if Num(day(Today())) <=5 then

Let mesAnterior = MonthStart(Today())-1;

Store nomedaTabela Into nomedaTabela_$(mesAnterior).qvd

EndIf

Store nomedaTabela Into nomedaTabela_$(mesAtual).qvd

 

diogoduarte
Partner - Contributor III
Partner - Contributor III

Cara, também não entendi muito bem o porque do problema no final do mês, mas vou tentar te dar uma dica que talvez você adapte e te ajude a resolver sua situação.

Eu vou considerar que você vai utilizar esse QVD com a coluna dat_ref_carga para ser incrementado com os novos dados advindos do seu banco (ou repositório que for).

Qvd_Incremental:
Load
max(dat_ref_carga) as dat_ref_carga
From arquivo.qvd (qvd);

LET maxDataQlik = Peek('dat_ref_carga');

Drop table Qvd_Incremental;

Dados_Banco:
Load
*,
MonthName(campo_data) as grava_mes
Sql .... 

meses:
Load Distinct
MonthName(campo_data) as meses_carga
Resident Dados_Banco;

For Each mes in FieldValueList('meses_carga')

QVD_Gravar:
Load
*
Resident Dados_Banco
Where grava_mes = '$(mes)';

Store * from QVD_Gravar into [lib://NOME_$(mes)] (qvd);

Drop table QVD_Gravar;

Next meses_carga;

Drop tables Dados_Banco , meses ;

 

Se eu entendi alguma coisa, isso pode te ajudar a solucionar o seu problema, caso contrário me explica novamente hehe.

Valeu