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: 
Not applicable

Relacionamento entre mais de 2 colunas

Boa Tarde,

Estou com um problema, estou montando um Fluxo de Caixa e preciso fazer o relacionamento entre as tabelas, porém conforme imagem abaixo, se eu colocar mais de um relacionamento entre os campos que preciso o QlikView cria tabelas sintéticas, sei que não é correto isso ocorrer, gostaria de saber o que pode ser feito para que eu consiga relacionar os campos de todas as tabelas, sem ter tabelas sintéticas interligando os demais campos.

relacionamentos.png

Fico no aguardo de uma resposta.

Att.

Maurício Rodrigues

1 Solution

Accepted Solutions
maiconmello
Creator III
Creator III

Tenta isso ! Dat002 ignora nesse momento, seria seu calendário master ?

CTP001: (CONTASPAGAR)

LOAD      CTACORRENTE &'-'&  EMPRESA &'-'& DATA  as PK_Contas_Pagar,

          CTACORRENTE                            AS %CTACORRENTE_ID,

          EMPRESA                                AS PK_Empresa

          DATA AS CTP_DATA,

          MES AS CTP_MES,

          EMPRESAMAE AS CTP_EMPRESAMAE,

          SEQTITULO AS CTP_SEQTITULO,

          TITULO AS CTP_TITULO,

          ESPECIE AS CTP_ESPECIE,

          PESSOA AS CTP_PESSOA,

          SEQPESSOA AS CTP_SEQPESSOA,

          PARCELA AS CTP_PARCELA,

          VALOR AS CTP_VALOR,

          TIPO AS CTP_TIPO

EXT001: (EXTRATO)

LOAD     

          SEQCTACORRENTE  &'-'& EMPRESA &'-'& DATA as PK_Contas_Pagar, // seu campo data tem que estar no mesmo formato nas duas tabelas Exemplo : Formato DD/MM/YYYY

        //  NUM(DATA) AS %DVT_ID,

        //  SEQCTACORRENTE AS %CTACORRENTE_ID,

       //   EMPRESA AS %EMP_ID,

          RAZAOSOCIAL AS EXT_RAZAOSOCIAL,  //Este campo é diferente da Razaosocial da tab empresa ?Precisa ?

          BANCO AS EXT_BANCO,

          DESCRITIVO AS EXT_DESCRITIVO,

          CONTA AS EXT_CONTA,

          SALDO AS EXT_SALDO

FLL001: (EMPRESAS)

LOAD     

          NROEMPRESA  as PK_Empresa

          NROEMPRESA AS %EMP_ID,

          RAZAOSOCIAL AS FLL_RAZAOSOCIAL

View solution in original post

9 Replies
maiconmello
Creator III
Creator III

Amigão boa tarde !

Faça a chave composta nesse caso.

Load %ctacorrente &'-'& Data &'-'& CTPEmpresa as PK_Fluxo,

        Campo1,

        Campo2,

        Campo3;

Load %ctacorrente &'-'& DVT_ID &'-'& %Emp_ID as PK_Fluxo,

        campo1,

        campo2;

Nesse caso irá ligar as tabelas pelo campo PK_Fluxo.

Campo que são comuns ai sim interessante ou você não carregar além da chave ou renomear.

Atenciosamente

Not applicable
Author

Boa Tarde Maicon,

Estou tentando fazer o que você me passou porém não está funcionando.

Vou colar pra você cada LOAD que eu tenho aqui:

CTP001: (CONTASPAGAR)

LOAD CTACORRENTE AS %CTACORRENTE_ID,

          EMPRESA AS CTP_EMPRESA,

          DATA AS CTP_DATA,

          MES AS CTP_MES,

          EMPRESAMAE AS CTP_EMPRESAMAE,

          SEQTITULO AS CTP_SEQTITULO,

          TITULO AS CTP_TITULO,

          ESPECIE AS CTP_ESPECIE,

          PESSOA AS CTP_PESSOA,

          SEQPESSOA AS CTP_SEQPESSOA,

          PARCELA AS CTP_PARCELA,

          VALOR AS CTP_VALOR,

          TIPO AS CTP_TIPO

EXT001: (EXTRATO)

LOAD NUM(DATA) AS %DVT_ID,

          SEQCTACORRENTE AS %CTACORRENTE_ID,

          EMPRESA AS %EMP_ID,

          RAZAOSOCIAL AS EXT_RAZAOSOCIAL,

          BANCO AS EXT_BANCO,

          DESCRITIVO AS EXT_DESCRITIVO,

          CONTA AS EXT_CONTA,

          SALDO AS EXT_SALDO

FLL001: (EMPRESAS)

LOAD NROEMPRESA AS %EMP_ID,

          RAZAOSOCIAL AS FLL_RAZAOSOCIAL

DAT002: (DATAS)

LOAD NUM(TempDate) AS %DVT_ID

Se eu fizer da forma que você mencionou ele fala que o campo no existe.

Eu precisaria interligar estas tabelas (CONTASPAGAR com EXTRATO, EMPRESAS e DATAS) / (EXTRATO com CONTASPAGAR, EMPRESAS e DATAS).

Desculpe os questionamentos é que até hoje não precisei fazer essas amarrações e para um Fluxo de Caixa é extremamente necessário.

Att.

Maurício Rodrigues

maiconmello
Creator III
Creator III

Tenta isso ! Dat002 ignora nesse momento, seria seu calendário master ?

CTP001: (CONTASPAGAR)

LOAD      CTACORRENTE &'-'&  EMPRESA &'-'& DATA  as PK_Contas_Pagar,

          CTACORRENTE                            AS %CTACORRENTE_ID,

          EMPRESA                                AS PK_Empresa

          DATA AS CTP_DATA,

          MES AS CTP_MES,

          EMPRESAMAE AS CTP_EMPRESAMAE,

          SEQTITULO AS CTP_SEQTITULO,

          TITULO AS CTP_TITULO,

          ESPECIE AS CTP_ESPECIE,

          PESSOA AS CTP_PESSOA,

          SEQPESSOA AS CTP_SEQPESSOA,

          PARCELA AS CTP_PARCELA,

          VALOR AS CTP_VALOR,

          TIPO AS CTP_TIPO

EXT001: (EXTRATO)

LOAD     

          SEQCTACORRENTE  &'-'& EMPRESA &'-'& DATA as PK_Contas_Pagar, // seu campo data tem que estar no mesmo formato nas duas tabelas Exemplo : Formato DD/MM/YYYY

        //  NUM(DATA) AS %DVT_ID,

        //  SEQCTACORRENTE AS %CTACORRENTE_ID,

       //   EMPRESA AS %EMP_ID,

          RAZAOSOCIAL AS EXT_RAZAOSOCIAL,  //Este campo é diferente da Razaosocial da tab empresa ?Precisa ?

          BANCO AS EXT_BANCO,

          DESCRITIVO AS EXT_DESCRITIVO,

          CONTA AS EXT_CONTA,

          SALDO AS EXT_SALDO

FLL001: (EMPRESAS)

LOAD     

          NROEMPRESA  as PK_Empresa

          NROEMPRESA AS %EMP_ID,

          RAZAOSOCIAL AS FLL_RAZAOSOCIAL

Clever_Anjos
Employee
Employee

A rigor uma tabela sintética não é por si só uma coisa ruim (Leiam aqui antes de me espancar: Synthetic Keys)

É a maneira que o motor do Qlik gerencia chaves compostas (quando criamos uma chave concatenada estamos fazendo "na mão" o que o Qlik faz quando precisa resolver uma chave composta).

O problema é que quando uma (*) chave sintética aparece ela pode indicar que seu modelo de dados está com problemas.Talvez seja o caso de revisar sua modelagem, no seu caso, talvez juntar as tabelas de Extrato e Contas a pagar em apenas uma tabela fato concatenada.

(*) ou várias, já peguei app´s que tinham dezenas de tabelas $Syn

maiconmello
Creator III
Creator III

Interessante, porém eu evito o máximo possível.

Já vi servidor travar por causa de chave sintética.

Pega uma aplicação com uma massa grande de dados,ai onde ele perde performance e aumenta consideravelmente o consumo de memória.

Atenciosamente,

Not applicable
Author

Boa Tarde Maicon,

Fazendo da forma que você me passou não obtive sucesso, tentei também fazer a configuração utilizando LinkTable, não sei dizer onde posso estar errando, agora com essa questão passada pelo Clever, talvez no meu caso não tenha impactos negativos em utilizar tabelas sintéticas.

Talvez seja interessante fazer desta forma e se caso vir a surgir uma nova dúvida postar aqui para vocês.

Att.

Maurício Rodrigues

maiconmello
Creator III
Creator III

Mauricio, posta seu modelo com dados reduzidos que faço pra você.

em teoria é o mesmo formato do seu print, a diferença que vais usar chave composta.

Not applicable
Author

Boa Tarde,

Veja se isso lhe ajuda.

Att.

Maurício Rodrigues

Clever_Anjos
Employee
Employee

Já chegou à uma solução? Se sim, marque a resposta que o ajudou como "Correta", nos ajudando a manter os forums organizados

Como obter ajuda? Leia antes de postar