Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia,
Como posso resolver a referência circular abaixo?
No modelo de dados original:
A tabela LICITAÇÕES se relaciona com LICITACOES_LOTES pelo ID_LICITACAO.
A tabela LICITACOES_LOTES se relaciona com LICITACOES_LICITANTES pelo CODIGO_LICITACAO_LOTE.
A tabela LICITACOES_LICITANTES se relaciona com LICITAÇÕES pelo ID_LICITACAO.
Como forma de identificar cada relação, fiz o seguinte no script:
[LICITACOES]:
LOAD
[IDLICITACAO] AS $IDLICITACAO, //chave para relacionar com outras tabelas
[IDLICITACAO] AS [CODIGO LICITACAO],
[IDLICITACAO] AS $LICLICITANTES.IDLICITACAO, //chave para relacionar com a tabela LICITACOES_LICITANTES
[IDLICITACAO] AS $LICLOTE.IDLICITACAO, //chave para relacionar com a tabela LICITACOES_LOTE
[NUMEROEDITAL] AS [LIC.NUMEROEDITAL],
[ANOEDITAL] AS [LIC.ANOEDITAL];
SELECT [....];
[LICITACOES_LOTES]:
LOAD
[CODIGO_LICITACAO_LOTE],
// [IDLICITACAO],
[CODIGO_LICITACAO_LOTE] AS $LICLICITANTES.CODIGO_LICITACAO_LOTE, //chave para relacionar com a tabela LICITACOES_LICITANTES
[IDLICITACAO] AS $LICLOTE.IDLICITACAO, //chave para relacionar com a tabela LICITACOES
[SEQUENCIAL] AS [LICLOTE.SEQUENCIAL],
[DESCRICAO] AS [LICLOTE.DESCRICAO],
[CODIGO_LICITACAO_LOTE] AS $LICLOTESITU.CODIGO_LICITACAO_LOTE, //chave para relacionar com a tabela LICITACOES_LOTES_SITUACAO
SELECT [....];
[LICITACOES_LICITANTES]:
LOAD
[CODIGO_LICITACOES_LICITANTES],
// [CODIGO_LICITACAO_LOTE],
// [IDLICITACAO],
[CODIGO_LICITACAO_LOTE] AS $LICLICITANTES.CODIGO_LICITACAO_LOTE, //chave para relacionar com a tabela LICITACOES_LOTES
[IDLICITACAO] AS $LICLICITANTES.IDLICITACAO, //chave para relacionar com a tabela LICITACOES
[VENCEDOR] AS [LICLICITANTES.VENCEDOR],
[CLASSIFICACAO_LABEL] AS [LICLICITANTES.CLASSIFICACAO],
[VALOR_PROPOSTA] AS [LICLICITANTES.VALOR_PROPOSTA],
[PRAZO_EXECUCAO] AS [LICLICITANTES.PRAZO_EXECUCAO],
[IDPESSOA];
SELECT [...];
Por favor, me ajudem, pois percebi a ocorrência de pelo menos uma três referências circulares em todo o modelo a ser carregado, muito semelhante a esse que descrevi.
Agradeço a quem puder me ajudar!!!
Amigo, saiba o motivo e como resolver:
Abraço.
Remover esta linha [IDLICITACAO] AS $LICLICITANTES.IDLICITACAO da tabela [LICITACOES_LICITANTES] resolveria seu problema de referência circular. Mas qual o impacto? O que você perderia com isso?
Como o mario.sergio.ti bem disse, vale a pena ler o help para identificar melhor o problema.
Ou teste documentar a linha da tabela [LICITACOES_LICITANTES]
//[CODIGO_LICITACAO_LOTE] AS $LICLICITANTES.CODIGO_LICITACAO_LOTE,
Mas é importante entender o objetivo de cada tabela para fazer os ajustes adequados no modelo de dados...
Há licitações com e sem lotes, e se remover isso, não tenho como saber os licitantes das licitações sem lotes. Portanto, não posso removê-lo.
E se:
[LICITACOES_LOTES]:
LOAD
[CODIGO_LICITACAO_LOTE]&[IDLICITACAO] as Chave,
[CODIGO_LICITACAO_LOTE],
// [IDLICITACAO],
//[CODIGO_LICITACAO_LOTE],
[IDLICITACAO] AS $LICLOTE.IDLICITACAO, //chave para relacionar com a tabela LICITACOES
[SEQUENCIAL] AS [LICLOTE.SEQUENCIAL],
[DESCRICAO] AS [LICLOTE.DESCRICAO],
[CODIGO_LICITACAO_LOTE] AS $LICLOTESITU.CODIGO_LICITACAO_LOTE, //chave para relacionar com a tabela LICITACOES_LOTES_SITUACAO
SELECT [....];
[LICITACOES_LICITANTES]:
LOAD
[CODIGO_LICITACAO_LOTE]&[IDLICITACAO] as Chave,
[CODIGO_LICITACOES_LICITANTES],
// [CODIGO_LICITACAO_LOTE],
// [IDLICITACAO],
[CODIGO_LICITACAO_LOTE],
[IDLICITACAO] AS $LICLICITANTES.IDLICITACAO,
[VENCEDOR] AS [LICLICITANTES.VENCEDOR],
[CLASSIFICACAO_LABEL] AS [LICLICITANTES.CLASSIFICACAO],
[VALOR_PROPOSTA] AS [LICLICITANTES.VALOR_PROPOSTA],
[PRAZO_EXECUCAO] AS [LICLICITANTES.PRAZO_EXECUCAO],
[IDPESSOA];
SELECT [...];
Crie uma linktable entre as 3
Sou iniciante no qlik, poderia me ajudar em como criar essa linktable?
Eis um exemplo bem didático:
Abs e Sucesso!!
Deu chave sintética Chave+CODIGO_LICITACAO_LOTE entre LICITACOES_LOTES e LICITACOES_LICITANTES, e não resolveu a referencia circular.