Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
msludo
Contributor III
Contributor III

Como resolver essa referência circular?

Bom dia,

Como posso resolver a referência circular abaixo?

referencia circular.png

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!!!

Labels (2)
11 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, saiba o motivo e como resolver:

https://help.qlik.com/pt-BR/sense/September2017/Subsystems/Hub/Content/LoadData/understand-circular-...

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Thiago_Justen_

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.

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

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...

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
msludo
Contributor III
Contributor III
Author

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.

Thiago_Justen_

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 [...];

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

Crie uma linktable entre as 3

msludo
Contributor III
Contributor III
Author

Sou iniciante no qlik, poderia me ajudar em como criar essa linktable?

Thiago_Justen_

Eis um exemplo bem didático:

Exemplo de Link table

Abs e Sucesso!!

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

Deu chave sintética Chave+CODIGO_LICITACAO_LOTE entre LICITACOES_LOTES e LICITACOES_LICITANTES, e não resolveu a referencia circular.