Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dificuldade em Criar Filtro Sem Criar Referência Circular

Boa tarde.

Não sei se alguém pode me ajudar com esse tipo de dificuldade.

Em duas de minhas tabelas, Exames e Cadastros, existem uma coluna chamada Congênere.

Eu preciso que ao Filtrar uma congênere o sistema restrinja os exames e os cadastros da congênere escolhida pelo usuário.

Referencia Circular 1.PNG

Acontece que, se eu qualificar a coluna Congênere nas duas tabelas, uma referência circular é criada, e o desempenho da aplicação muito prejudicado.

Referencia Circular 2.PNG

Sou inexperiente na montagem de aplicativos no QlikView, e tenho certa dificuldade em trabalhar com esses conceitos, que são diferentes de um banco de dados relacional.

Será que alguém poderia me ajudar, dando uma orientação sobre como criar esse filtro sem que uma referência circular seja criada?

Desde já agradeço a atenção dispensada.

Labels (3)
21 Replies
Not applicable
Author

Bom dia Márcio.

Infelizmente não consegui ainda uma solução.

Continuo com dois filtros na aplicação para Congênere. Um para a congênere do Cadastro e outro para a Congênere dos Exames.

Para o usuário isso é ruim, e confuso.

Caso queira fechar meu chamado, tudo bem. Entendo que é ruim ficar com chamado aberto assim.

Mas solução mesmo ainda não consegui.

cristianor
Partner - Contributor II
Partner - Contributor II

Bom Dia , André.

Na minha opinião você pode tentar duas coisas join no próprio script para somente unir as tabelas exames e cadastro em uma (não recomendado ) a segunda e a que mais me agrada é a que  você crie uma chave data e Congênere (se forem o mesmo tipo de dados é claro) ligando por chave estrangeira exames e cadastro e herdando o calendário pois em um cadastro existem n exames.



Att;

Clever_Anjos
Employee
Employee

Sua tabela "Cadastro" na verdade é uma tabela fato com variação por data.

A técnica mais correta quando você tem 2 ou mais tabelas fatos que devem ser ligadas a "n" tabelas dimensão é uma "link table", aqui na comunidade tem vários exemplos sobre isso

Not applicable
Author

Bom dia Clever.

Já tentei criar uma tabela intermediária (Link Table), mas ainda assim uma referencia circular é gerada.Link Table.PNG

Not applicable
Author

Bom dia Cristiano.

1º Opção: Unir as tabelas Exames e Cadastro não daria certo, pois eu tenho por exemplo, o cadastro do João no mês 07/2017 em que ele esteve ativo (apenas 1 registro para essa competência), e neste mês o João pode ter feito 10 exames. Se unirmos as duas, teríamos 10 registros de cadastro do João para o mês 07/2017, e isso atrapalharia a analise de beneficiários ativos e cancelados por período.

2º Opção: Não entendi muito bem quais campos seriam usados como chave em cada uma das tabelas. Mas tentarei fazer algo nesse sentido.

Na realidade eu já tentei, mas não deu certo. Porém, estou pensando em usar outros campos como chave. Vou tentar aqui, e se obtiver sucesso aviso você.

Obrigado pela ideias.

Att.

cristianor
Partner - Contributor II
Partner - Contributor II

Entendi André.

Uma coisa que não entendi no seu modelo relacional se eu tenho uma data de cadastro ela não foi realizada no dia de um exame ?

Not applicable
Author

Não Cristiano.

Aqui é uma operadora de plano de saúde.

Eu tenho a data do cadastro do beneficiário no plano. (Tabela Cadastro)

E enquanto ele é cliente nosso, faz diversos exames, ao longo dos meses ou anos. (Tabela Exames)

cristianor
Partner - Contributor II
Partner - Contributor II

André ,

Pelo que eu pude verificar você tem duas chaves naturais de relacionamento CADASTRO,COD_BENEFICIARIO e GUIAS_COD_BENEFECIARIO faça o relacionamento das duas e então decida a data base do calendário se vai ser da data de emissão ou da data do cadastro , na minha opinião data de emissão neste caso de um alias em Mês_Ano em cadastro. Fazendo isso toda vez que você selecionar um guia emitida todos os dados do cadastro iram vir juntos inclusive a data.


Espero que tenha ajudado.


Att;

Clever_Anjos
Employee
Employee

Se usar a técnica corretamente nunca fica nem SK nem referencia circular.

Se puder postar uma amostra do seu QVW eu posto um script para converter o seu modelo em um modelo com LinkTable

joao_sp_campina
Creator II
Creator II

Boa tarde André,

Faz o seguinte veja a possibilidade de criar uma Link Table no mesmo modelo que passou aí mas ligando a tabela Calendário nesta tabela de Link. Feito isso tente criar uma chave composta passando o campo data na associação entre Cadastro e Exames.

Veja se funciona.

João Carlos