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

While na Recarga usando Campos de Tabela

Boa tarde pessoal. Tenho um problema que imagino ser simples mas não consigo montar a sintaxe.

Primeiro eu faço uma seleção no cadastro de empresas;

Empresas:

Load

*;

SQL

CodigoDaEmpresa,

NomeDaEmpresa

From Empresas;

Isto podem me resultar algo como:

1, Empresa A

5, Empresa B

6, Empresa C

Depois eu preciso fazer uma consulta recorrente (dentro de um For) porém passando os códigos das empresas (previamente selecionados) como parâmetro dentro da minha consulta.

For vEmpresa 0 to ???

Selecione os Dados de Movimento Onde o [Empresa]  = [CodigoDaEmpresa]

Next

Enfim, não sei se deu pra entender. Minha dificuldade é saber quantos registros retorna a primeira tabela, para colocar como limite máximo do "For" e também como capturar o campo da CodigoDaEmpresa da primeira tabela para passar como parâmetro na segunda consulta.

Alguém ajuda? hehe

1 Solution

Accepted Solutions
nicolett_yuri

Anderson,

faça uma leitura com LOAD DISTINCT desta tabela de empresa e depois coloque os valores da empresa dentro de variáveis para fazer o where.

Segue abaixo um exemplo simples:

Empresa:

LOAD DISTINCT EMPRESA RESIDENT TABELA;

FOR x=0 TO NoOfRows(Empresa)-1

LET Empresa = Peek('EMPRESA', $(x));

NEXT x;

View solution in original post

3 Replies
nicolett_yuri

Anderson,

faça uma leitura com LOAD DISTINCT desta tabela de empresa e depois coloque os valores da empresa dentro de variáveis para fazer o where.

Segue abaixo um exemplo simples:

Empresa:

LOAD DISTINCT EMPRESA RESIDENT TABELA;

FOR x=0 TO NoOfRows(Empresa)-1

LET Empresa = Peek('EMPRESA', $(x));

NEXT x;

Not applicable
Author

Valeu Yuri

Enquanto isso eu fui pesquisando e o NoOfRows eu encontrei.

Porém ao invés de usar Peek('Empresa',$(x) )..

Eu usei FieldValue('Empresa', $(x) )...

Tem alguma desvantagem?

nicolett_yuri

Nenhuma desvantagem. Funciona da mesma forma!!