Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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);
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);
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.
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.
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!
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!