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

QVD

Olá pessoal!

Fiz o seguinte código:

Criei a seguinte variável -

let

vHoje = Day(date(now())) & Month(date(now())) & Year(date(now()));

Depois criei um store -

Store Curso into $(vHoje) .qvd (qvd);

1 Solution

Accepted Solutions
erichshiino
Partner - Master
Partner - Master

Olá, Anderson.

O store funciona para tabelas. Então, coloquei a variável como uma linha de uma tabela antes do store.

Além disso, não precisa de tantas etapas para a criação da data do dia. Pode usar o today()

Se precisar formatar, poderia usar o Date

Date( Today(),'DDMMYYYY')

let  vHoje = today();

Hoje:

load '$(vHoje)' as Hoje

AutoGenerate(1);

Store Hoje into Hoje.qvd;

Espero que ajude,

Erich

View solution in original post

9 Replies
erichshiino
Partner - Master
Partner - Master

Olá, Anderson.

O store funciona para tabelas. Então, coloquei a variável como uma linha de uma tabela antes do store.

Além disso, não precisa de tantas etapas para a criação da data do dia. Pode usar o today()

Se precisar formatar, poderia usar o Date

Date( Today(),'DDMMYYYY')

let  vHoje = today();

Hoje:

load '$(vHoje)' as Hoje

AutoGenerate(1);

Store Hoje into Hoje.qvd;

Espero que ajude,

Erich

Not applicable
Author

Olá Erich!

Deu certo o código que passou, mas me problema é mais sério. Exemplo: Eu preciso trazer o histórico de carregamento, ou seja, quando carrego os dados de hoje ele vai trazer a data de hoje, quando carrego os dados de amanhã tem que trazer a data de hoje mais a data de amanhã, armazenando assim um qvd para cada dia.

Espero que tenha consegui me fazer entender.

Muito obrigado desde já e se puder continuar me ajudando, ficarei mais agradecido.

Abraços.

erichshiino
Partner - Master
Partner - Master

Ok, Vai ser uma recarga incremental. Fica mais ou menos assim:

let  vHoje = today();

Hoje:

load distinct  Hoje //Coloquei o distinct só para não replicar o dia, caso você faça a recarga mais de uma vez

from Hoje.qvd(qvd);

Concatenate(Hoje) // Esse concatenate é opcional, já que as tabelas são identicas

load '$(vHoje)' as Hoje

AutoGenerate(1);

Store Hoje into Hoje.qvd;

Espero que ajude,

Abs,

Erich

Not applicable
Author

Olá Erich!

Deu super certo o script (muito obrigado). Agora é o seguinte. Trago a tabela Hoje (no layout) com as datas da recarga, até aí OK. Minha dúvida agora e com relação ao relacionamento das tabelas já que preciso mostrar o que foi carregado no dia de hoje, amanhã preciso que mostre o que foi carregado e assim sucessivamente, ou seja, preciso que cada dia mostre o que foi carregado, lembrando que a recarga de cada dia não pode sobrepor a recarga do dia anterior.

Muito obrigado desde já e aguardo próximos comandos (hehehe)

erichshiino
Partner - Master
Partner - Master

Pode passar o script que usa para trazer os dados para vermos qual a melhor forma de criar o relacionamento?

Abs,

Erich

Not applicable
Author

let vHoje = Day(date(now())) & Month(date(now())) & Year(date(now()));

OLEDB CONNECT TO [Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=qlikview;Data Source=db_ntcco;Extended Properties=""] (XPassword is HPUPAcAPWTYQTcVNNTUB);

[Curso]:
LOAD
    CODCURSO,
    Capitalize(NOMCURSO)  as NOMCURSO,
    Capitalize(CODDEPART) as CODDEPART;
SQL SELECT CODCURSO,
    NOMCURSO,
    CODDEPART
FROM ACAD.CURSO
WHERE CURNIVEL = 3;
LEFT JOIN ([Curso])
LOAD DISTINCT
    CODDEPART,
    DESCRICAO,
    NOMDEPART;
SQL SELECT
    CODDEPART,
    DESCRICAO,
    NOMDEPART
FROM ACAD.CENTRO;

Hoje:
load distinct  Hoje //Coloquei o distinct só para não replicar o dia, caso você faça a recarga mais de uma vez
from Hoje.qvd(qvd);

//Concatenate(Hoje) // Esse concatenate é opcional, já que as tabelas são identicas
load '$(vHoje)' as Hoje
AutoGenerate(1);

Store Curso into Hoje.qvd;

erichshiino
Partner - Master
Partner - Master

Anderson,

Deve ficar mais ou menos assim:

(da primeira vez, como curso.qvd não existe, você deve ignorar o erro)

let vHoje = Day(date(now())) & Month(date(now())) & Year(date(now()));

OLEDB CONNECT TO [Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=qlikview;Data Source=db_ntcco;Extended Properties=""] (XPassword is HPUPAcAPWTYQTcVNNTUB);

Curso:
LOAD

'$(vHoje)' as Data,
    CODCURSO,
    Capitalize(NOMCURSO)  as NOMCURSO,
    Capitalize(CODDEPART) as CODDEPART;
SQL SELECT CODCURSO,
    NOMCURSO,
    CODDEPART
FROM ACAD.CURSO
WHERE CURNIVEL = 3;
LEFT JOIN ([Curso])
LOAD DISTINCT
    CODDEPART,
    DESCRICAO,
    NOMDEPART;
SQL SELECT
    CODDEPART,
    DESCRICAO,
    NOMDEPART
FROM ACAD.CENTRO;

concatenate(Curso)

Load * from Curso.qvd (qvd)

where Data <> '$(vHoje)'

;

store Curso into Curso.qvd;

Not applicable
Author

Olá Erich!

Muito obrigado companheiro pela ajuda, valeu mesmo.

Abraços.

edu_oliveira
Partner - Contributor III
Partner - Contributor III

Srs., boa tarde.

Eu já passei por situação parecida, e a solução foi um pouco mais simples, na hora de Definir o conteúro da variável. Veja o Exemplo:

let Var_Nome_Arquivo = 'Historico_' & Month(now()) & Year(now()) & '.QVD';

 

[Arquivo]:

load .......

from ......

Store * from Arquivo into $(Var_Nome_Arquivo) (qvd);

Acho que dá para adptar a sua situação.

Att.,