Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
girino777
Creator III
Creator III

Duvida com arquivo qvd - II

Yuri.!

Ainda com relação aos arquivos Qvd.

Quando eu utilizo as variáveis $table e $rows ele acumula todos os registros (Soma tudo)

Gostaria de saber a quantidade de registros que foi gerada em cada tabela que eu gerei de histórico.

Neste caso, usando o drop, tem como saber a quantidade de registros que foi gerada em cada uma desta tabelas.

Exemplo:

Tabela1 = 300 Registros

Tabela2 = 550 Registros

Existe alguma outra forma ????????? 

Obrigado.

Renato

1 Solution

Accepted Solutions
nicolett_yuri

O conceito que você precisa entender é o da auto concatenação, o que seria isso?

Se o qlikview encontrar duas tabelas com as mesmas colunas, ele junta as duas em uma só (isso é o que esta acontecendo com a sua aplicação).

O que fiz foi utilizar o comando Qualify *; para alterar o nome de todas as colunas e assim as duas ficarem diferentes.

Da uma olhada no exemplo que te mandei.

View solution in original post

10 Replies
nicolett_yuri

Você pode usar a função NoOfRows, segue exemplo:

Tabela1:

LOAD A, B, C FROM x.qvd

STORE Tabela1 INTO Tabela1.qvd (qvd);

LET vNumRegistro = NoOfRows('Tabela1'); //Coloca o número de registros da tabela dentro da variável.

DROP TABLE Tabela1;


Trace Número de registros gerados: $(vNumRegistro);

girino777
Creator III
Creator III
Author

Yuri, estou fazendo da seguinte forma, mas não esta retornando nada.

Inclusive, nem gera a variável....!!!

Como eu faço para retornar os valores no QlikView?

Desculpe, é que sou meio inexperiente com arquivos qvds. 

LOAD CODIGO,

     NOME,

     DATA

FROM

C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Teste.xlsx

(ooxml, embedded labels, table is Plan1);

store Plan1 into 'C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Historico_1.qvd';

LET vNumRegistro = NoOfRows('Historico_1');

DROP TABLE Plan1;

Trace Número de registros gerados: $(vNumRegistro);

//-----------------------------------------------------------------------------------------------------------------------------------------------

// JOGAR Plan2 para Historico //

LOAD CODIGO,

     NOME,

     DATA

FROM

C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Teste.xlsx

(ooxml, embedded labels, table is Plan2);

store Plan2 into 'C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Historico_2.qvd';

LET vNumRegistro = NoOfRows('Historico_2');

DROP TABLE Plan2;

Trace Número de registros gerados: $(vNumRegistro);

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa tarde Renato,

voce esta tentando pegar a qtde de registro da tabela Historico_1, mas ela existe?  Deveria colocar antes do load ou nao foi copiado.  Da mesma forma o nome da tabela no drop esta outro nome.

Historico_1:

LOAD CODIGO,

     NOME,

     DATA

FROM

C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Teste.xlsx

(ooxml, embedded labels, table is Plan1);

store Plan1 into 'C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Historico_1.qvd';

LET vNumRegistro = NoOfRows('Historico_1');

DROP TABLE Plan1;

Trace Número de registros gerados: $(vNumRegistro);

AMF

furtado@farolbi.com.br
Clever_Anjos
Employee
Employee

Tente usar um Set Analysis

=sum({<$Table={'Sua tabela'}>}$Rows)

nicolett_yuri

Renato, você precisa colocar sempre colocar o nome da tabela, assim evita qualquer problema desse tipo.

Antes do load, coloque o nome da tabela, por exemplo: "Historico1:"

ficaria mais ou menos assim:

Historico_1:

LOAD CODIGO,

     NOME,

     DATA

FROM

C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Teste.xlsx

(ooxml, embedded labels, table is Plan1);

store Historico_1 into 'C:\PROJETOS\PROJETOS_QLIKVIEW\TESTES_QVD\Historico_1.qvd';

LET vNumRegistro = NoOfRows('Historico_1');

DROP TABLE Historico_1;

Trace Número de registros gerados: $(vNumRegistro);

girino777
Creator III
Creator III
Author

Pessoal

Vou anexar meu qvw e minha pasta excel para ver se facilita.

O que eu estou tentando fazer como teste:

1. Tenho 1 planilha em excel com 3 pastas (Cada uma seria uma base de dados)

2. Quero criar 2 arquivos qvd com as 2 primeiras pastas.

3. O terceiro seria a minha base atual.

Eu queria trazer a quantidade de linhas de cada tabela para meu controle, porém ele acumula tudo na tabela Historico_1 e eu gostaria de ver os registros de cada tabela separado.

Não sei se isso é possível também ...!!!   

Obrigado.

Renato

nicolett_yuri

Segue

nicolett_yuri

O conceito que você precisa entender é o da auto concatenação, o que seria isso?

Se o qlikview encontrar duas tabelas com as mesmas colunas, ele junta as duas em uma só (isso é o que esta acontecendo com a sua aplicação).

O que fiz foi utilizar o comando Qualify *; para alterar o nome de todas as colunas e assim as duas ficarem diferentes.

Da uma olhada no exemplo que te mandei.

girino777
Creator III
Creator III
Author

Olá Yuri

Boa Tarde.!

Eu entendi.

É que eu estava pensando, no caso do cliente ter uma tabela com 2.000.000 de registros por exemplo dos últimos 2 anos, sendo 500.000 do 1 ano e 1.500.000 do 2 ano e o mesmo quisesse acompanhar essa evolução.

Daí ele queria saber a quantidade de registros anual e a evolução dessas cargas com relação a performance, entre outras.

Essa era a minha ideia. Como a tabela é a mesma, só efetuaria a carga do ano corrente e entraria naquilo que você falou da concatenação das tabelas quando os campos são iguais.

Você sabe me dizer, o que o pessoal costuma fazer nestes casos ? 

Qual seria a melhor prática ? 

Muito Obrigado. 

Renato