9 Replies Latest reply: Aug 2, 2016 7:31 AM by Clever Anjos RSS

    Relacionamento entre mais de 2 colunas

    Maurício César Rodrigues

      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

        • Re: Relacionamento entre mais de 2 colunas
          Maicon Mello

          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

            • Re: Relacionamento entre mais de 2 colunas
              Maurício César Rodrigues

              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

                • Re: Relacionamento entre mais de 2 colunas
                  Maicon Mello

                  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

              • Re: Relacionamento entre mais de 2 colunas
                Clever Anjos

                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

                • Re: Relacionamento entre mais de 2 colunas
                  Clever Anjos

                  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