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: 
vanessa_loschi
Contributor II
Contributor II

Como usar uma Resident Table em um script de carga?

Boa Tarde!

Preciso usar uma Resident table (Beneficiarios) como seleção em um script de carga do banco.

Gostaria de saber se existe uma maneira melhor de fazer isso, pois o script que eu fiz está demorando muito.

FOR a = 0 to NoOfRows('Beneficiarios')

     LET vBenef = chr(39)&Peek('NR_MATRICULA_BENEF', $(a), 'Beneficiarios')&chr(39);

ExameLaboratorio:

SQL

SELECT

  distinct

       x.CD_USUARIO as "NR_MATRICULA_BENEF",

       e.CD_PROCEDIMENTO,

       a.DT_RESULTADO,

       b.QT_RESULTADO,

       b.DS_RESULTADO,

FROM

      USUARIO x,

      RESULTADO a,

      RESULT_ITEM b,

      EXAME e

WHERE

      x.CD_USUARIO      = ($(vBenef))

  and a.NR_ATENDIMENTO  = x.NR_ATENDIMENTO

  and a.NR_RESULTADO    = b.NR_RESULTADO

  and e.NR_EXAME        = b.NR_EXAME

  and e.CD_PROCEDIMENTO = 40301605;

next;

Obrigada.

1 Solution

Accepted Solutions
Marcio_Campestrini
Specialist
Specialist

Vanessa

Você pode fazer um Exists na segunda tabela:

1o. Passo: carregar a tabela com os beneficiários.

2o. Passo: carregar os exames sem filtro.

3o. Passo: carregar os exames utilizando o Exists:

     Exames: Load * Resident ExameLaboratorio where Exists (NR_MATRICULA_BENEF, CD_USUARIO);

Márcio Rodrigo Campestrini

View solution in original post

5 Replies
Marcio_Campestrini
Specialist
Specialist

Vanessa

Você pode fazer um Exists na segunda tabela:

1o. Passo: carregar a tabela com os beneficiários.

2o. Passo: carregar os exames sem filtro.

3o. Passo: carregar os exames utilizando o Exists:

     Exames: Load * Resident ExameLaboratorio where Exists (NR_MATRICULA_BENEF, CD_USUARIO);

Márcio Rodrigo Campestrini
vanessa_loschi
Contributor II
Contributor II
Author

Obrigada Márcio,

Mas acho que carregar a tabela de exames sem filtro vai demorar mais, eu tenho 64 milhões de registros só na tabela RESULT_ITEM dos exames. Sem contar o tempo para ele buscar os campos em outras tabelas.

E, na seleção que eu preciso, são somente 56.000 registros.

Marcio_Campestrini
Specialist
Specialist

Nesse caso você precisa pesar o que vai demorar mais. Eu optaria pela solução que te passei pois vai utilizar de recursos melhores do Qlikview.

Outra solução é fazer uma carga prévia dos dados em arquivos QVD e depois ler esses arquivos diretamente na aplicação, o que tornaria a carga mais rápida.

Márcio Rodrigo Campestrini
vanessa_loschi
Contributor II
Contributor II
Author

Boa Tarde Márcio,

Só consegui testar a carga hoje e realmente ficou muito mais rápido mesmo com a grande quantidade de registros. Só mudei a ordem de leitura das tabelas para selecionar apenas os exames que eu precisava.

Muito Obrigada!

Thiago_Justen_

Vanessa,

Se a resposta do marcio.campestrini‌ te ajudou a resolver a questão, por favor, feche a thread marcando aquela resposta que você considera Correta.

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago