Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
marcelvinicius
Creator III
Creator III

Definir data no QVD que vem de Procedure

Boa tarde amigos,

Estou com um grande problema que não sei como resolver.

Estou gerando um arquivo QVD através de um procedure disponibilizada pelo cliente:

MovimentoEstoque:

//EXECUTE dbo.GetMovimentoEstoque @Empresa, @Estabelecimento, @DtInicio, @DtFim*

SQl Execute dbo.GetMovimentoEstoque '1', '1', '$(vrDataIni)','$(vrDataFim)';

GetMovimentoEstoque:

SQL SELECT * FROM ##GetMovimentoEstoque;


Store GetMovimentoEstoque into [lib://itens/movimentoestoque.qvd

----------------------------------------------------------------------------------------------------------------

Até aqui tudo bem esta funcionando.

Porém preciso que os meses fiquem salvos (movimentoestoque de JAN, FEV,MAR (...) DEZ)

É no momento de fazer a carga ou no momento de fazer o LOAD? (Pois estou lendo toda a informação direta do QVD).

Tenho que criar cargas todos os meses?

A minha variável de inicio e fim estão assim:

vrDataIni  = Date(MakeDate(Year(Today()),01,01),'YYYY/MM/DD');

vrDataFim  = Date(MakeDate(Year(Today()),12,31),'YYYY/MM/DD');

Estão de forma errada? (Assim esta pegando o ano inteiro e salvando novamente no QVD - sem carga incremental, quero pegar as informações somente do mês).

1 Solution

Accepted Solutions
nicolett_yuri

Marcel, não esta da forma errada. Na verdade o errado é relativo, rsrs. Depende muito do que deseja fazer.

Um incremental ideal depende muito de como sua tabela é atualizada, as vezes a janela de atualização de uma tabela é de 6 meses, então a carga incremental mensal não funcionará.

Se quiser fazer utilizando o mês, faça as variáveis da seguinte forma:

LET vrDataIni  = Date(MonthStart(Today()),'YYYY/MM/DD');

LET vrDataFim  = Date(MonthEnd(Today()),'YYYY/MM/DD');

LET vrMes = Date(MonthStart(Today()), 'DD/MM/YYYY'));

LET vrMesQvd = Date(MonthStart(Today()), 'YYYYMM'));

SQl Execute dbo.GetMovimentoEstoque '1', '1', '$(vrDataIni)','$(vrDataFim)';

GetMovimentoEstoque:

LOAD

*,

'$(vrMes)' as Mes;

SQL SELECT * FROM ##GetMovimentoEstoque;

Store GetMovimentoEstoque into [lib://itens/movimentoestoque_$(vrMesQvd).qvd] (qvd);

DROP TABLE GetMovimentoEstoque;

View solution in original post

2 Replies
marcelvinicius
Creator III
Creator III
Author

Alguém sabe?

nicolett_yuri

Marcel, não esta da forma errada. Na verdade o errado é relativo, rsrs. Depende muito do que deseja fazer.

Um incremental ideal depende muito de como sua tabela é atualizada, as vezes a janela de atualização de uma tabela é de 6 meses, então a carga incremental mensal não funcionará.

Se quiser fazer utilizando o mês, faça as variáveis da seguinte forma:

LET vrDataIni  = Date(MonthStart(Today()),'YYYY/MM/DD');

LET vrDataFim  = Date(MonthEnd(Today()),'YYYY/MM/DD');

LET vrMes = Date(MonthStart(Today()), 'DD/MM/YYYY'));

LET vrMesQvd = Date(MonthStart(Today()), 'YYYYMM'));

SQl Execute dbo.GetMovimentoEstoque '1', '1', '$(vrDataIni)','$(vrDataFim)';

GetMovimentoEstoque:

LOAD

*,

'$(vrMes)' as Mes;

SQL SELECT * FROM ##GetMovimentoEstoque;

Store GetMovimentoEstoque into [lib://itens/movimentoestoque_$(vrMesQvd).qvd] (qvd);

DROP TABLE GetMovimentoEstoque;