1 Reply Latest reply: Apr 19, 2016 11:44 AM by agnaldo neves RSS

    Dica de Relacionamento(Boas Praticas)

    agnaldo neves

      Bom dia,

      Eu tinha criado vários consultas dentro do postgres.

      Mas o pessoal de programação, disse para não mexer no banco de dados(risos).

      Então começei a fazer todas as tabelas que uso direto pelo Qlikview.

      Os valores estão batendo. O unico problema é que está gerando até $Syn 8.

      Tiver que usar em todas as tabelas a função

      AutoNumber(Text(mlid)) as p_recebimento,

          AutoNumber(Text(produto)) as p_produto,

          AutoNumber(Text(vendedor)) as p_vendedor,

          AutoNumber(Text(empresa)) as p_empresa,

          AutoNumber(Text(grid)) as p_lancto,

          AutoNumber(Text(deposito)) as p_deposito,

          AutoNumber(Text(grid)) as p_abastecimento,

          AutoNumber(Text(bico)) as p_bico,

       

       

       

      Pois o Postgres, estava gerando chaves primárias com até 20 caracteres.

      Pergunta, isso está errado?

      Eu consigo melhorar?

      Alguma dica para eu tentar melhorar este relacionamentos, segue o script.

       

       

       

       

       

      2016-04-19_10-54-25.png

       

       

      Let v_data = '2015-04-01' ;

      Let v_dataf = '2016-12-01';

       

       

      ODBC CONNECT32 TO fragata1;

       

       

      //SQL select check_estoque_f();

       

       

      CNX:

      LOAD

      empresa_nome ,

      empresa_codigo ;       

      SQL SELECT *

      FROM fragata."public"."empresa_local";

      store CNX into C:\postos\qvd\CNX.qvd(qvd);

       

       

      Informacao_A_Ser_Verificada:

      LOAD * INLINE [

          CampoDigitado

          MATRIZ FRAGATA

      ];

      Informacao_Do_Banco:

      SQL SELECT

        empresa_nome

      FROM fragata."public"."empresa_local";

      IF FieldValue('CampoDigitado',1) = FieldValue('empresa_nome',1) THEN

        TRACE Carrega a tabela!;

        Liberacao:

        LOAD

          empresa_nome ;  

        SQL SELECT *

        FROM fragata."public"."empresa_local";

       

       

      ////************************************************************************

      LET vHoje = Today();

      LET vVencimento = Date(Today()-30, 'DD/MM/YYYY');

      LET vDateMin=num(makedate(2015,01,01));

      LET vDateMax=floor(monthend(today()));

      LET vDateToday = num(today());

      ////************************************************************************

       

       

      CLD:

      LOAD

      Distinct

      Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY') AS CalendarDate,

      ceil(Month(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY'))/3) & 'Trim' as Trimestre,

      month(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Mês,

      WeekDay(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Semana,

      Day(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Dia,

      year(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Ano,

      monthname(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS MesAno

       

       

      AutoGenerate 1 While $(vDateMin) + IterNo() - 1 <=$(vDateMax);

      store CLD into C:\postos\qvd\CLD.qvd(qvd);

       

       

      ////************************************************************************

       

       

      PES:

      //Vendedor_Pessoa

      LOAD codigo as codigovendedor,

          nome as nomevendedor,

          AutoNumber(Text(grid)) as p_vendedor, 

          AutoNumber(Text(cargo)) as p_cargo,

           SubField(nome,' ',1) as Apelido,

          grid as nrcodigovendedor;  

      SQL SELECT *

      FROM fragata."public".pessoa;

      store PES into C:\postos\qvd\PES.qvd(qvd);

       

       

      ////************************************************************************

       

       

      VND:

      //Vendas_lancto

      LOAD data,

          turno,

          hora,

          seq,

          produto,

          operacao,

          AutoNumber(Text(mlid)) as p_recebimento,

          AutoNumber(Text(produto)) as p_produto,

          AutoNumber(Text(vendedor)) as p_vendedor,

          AutoNumber(Text(empresa)) as p_empresa,

          AutoNumber(Text(grid)) as p_lancto,

          AutoNumber(Text(deposito)) as p_deposito,

          AutoNumber(Text(grid)) as p_abastecimento,

          AutoNumber(Text(bico)) as p_bico,

          abastecimento as nrabastecimento,

          bico,

          quantidade,

          Date(Floor(data),'DD/MM/YYYY')     as     CalendarDate,

          pessoa,

          documento, 

          "preco_unit",

          valor,

          vendedor,

          abastecimento,

          usuario,

          empresa,

          mlid,

          grid as gridvnd;  

      SQL SELECT *

      FROM fragata."public".lancto

      WHERE data>= '$(v_data)' and data <='$(v_dataf)';

      store VND into C:\postos\qvd\VND.qvd(qvd);

       

       

      ////************************************************************************

       

       

      EMP:

      //Empresa

      LOAD codigo AS codigofilial,

        nome AS nomeempresa,

        AutoNumber(Text(grid)) as p_empresa,

        grid as gridemp;

             SQL SELECT *

      FROM fragata."public".empresa;

      store EMP into C:\postos\qvd\EMP.qvd(qvd);

       

       

      ////************************************************************************

      LCT:

      LOAD lancto,

           AutoNumber(Text(lancto)) as p_lancto,

           AutoNumber(Text(empresa)) as p_empresa,

           AutoNumber(Text(produto)) as p_produto,

          data,  

          "custo_medio",

          "ult_custo";   

      SQL SELECT *

      FROM fragata."public"."estoque_lancto"

      WHERE data>= '$(v_data)' and data <='$(v_dataf)';

      store LCT into C:\postos\qvd\LCT.qvd(qvd);

       

       

      ////*************************************************

      PRD:

      LOAD codigo as codigoproduto,   

          nome as nomeproduto,

          grupo,

          subgrupo,

          "unid_med",   

          comissao,

          AutoNumber(Text(grupo)) as p_grupo,

          AutoNumber(Text(grid)) as p_produto, 

          grid as gridprd;

      SQL SELECT *

      FROM fragata."public".produto;

      store PRD into C:\postos\qvd\PRD.qvd(qvd);

       

       

      ////*************************************************

       

       

      GRP:

      LOAD codigo as codigogrupo,

          nome as nomegrupo,

          AutoNumber(Text(grid)) as p_grupo,

          grid as gridgrp;

        

      SQL SELECT *

      FROM fragata."public"."grupo_produto";

      store GRP into C:\postos\qvd\GRP.qvd(qvd);

      ////*************************************************

       

       

      DEP:

      LOAD codigo as codigodeposito,

          nome as nomedeposito,

          capacidade,

          AutoNumber(Text(grid)) as p_deposito,

          grid as griddpt;

         

      SQL SELECT *

      FROM fragata."public".deposito;

      store DEP into C:\postos\qvd\DEP.qvd(qvd);

       

       

      ////*************************************************

      ABT:

      LOAD grid,

          AutoNumber(Text(grid)) as p_abastecimento,

          quantidade AS quantidadeabast,

          valor AS valorabast,

          Date(Floor(dia_fiscal),'DD/MM/YYYY')     as     dia_fiscal,

          operacao,

          codigo AS abastecimento;

       

      SQL SELECT *

      FROM fragata."public"."abastecimento_fiscal"

      WHERE dia_fiscal>= '$(v_data)' and dia_fiscal <='$(v_dataf)';

       

      store ABT into C:\postos\qvd\ABT.qvd(qvd);

       

       

      ////*************************************************

       

       

      RCB:

      LOAD

          data as datarecebidas,

         

        

          AutoNumber(Text(forma_pgto)) as p_formapgto,

          AutoNumber(Text(mlid)) as p_recebimento,

          "forma_pgto",

          "valor_venda_rateio",

          "valor_venda",

          "valor_forma_pgto",

          "total_forma_pgto",

          troco,

          pgto,

          "conta_debitar";

      SQL SELECT *

      FROM fragata."public"."venda_pgto_view"

      WHERE data>= '$(v_data)' and data <='$(v_dataf)';

      store RCB into C:\postos\qvd\RCB.qvd(qvd);

       

       

      ////*************************************************

       

       

      PGT:

      LOAD codigo as codigoformapgto,

          nome as nomeformapgto,

          grid as gridpgt,

          AutoNumber(Text(grid)) as p_formapgto;

         

      SQL SELECT *

      FROM fragata."public"."forma_pgto";

      store PGT into C:\postos\qvd\PGT.qvd(qvd);

       

       

      ////*************************************************

       

       

       

       

      CRG:

      LOAD codigo as codigocargo,

          nome as nomecargo,

          AutoNumber(Text(grid)) as p_cargo,

          grid as gridcrg;

      SQL SELECT *

      FROM fragata."public".cargo;

      store CRG into C:\postos\qvd\CRG.qvd(qvd);

       

       

       

       

      //-------- Start Multiple Select Statements ------

      LOAD  data as dataestoque,

       

       

           AutoNumber(Text(produto)) as p_produto,

       

       

          AutoNumber(Text(empresa)) as p_empresa,

          estoque,

          custo_medio as medioestoquex,

          ult_custo;

         

         

         

      SQL SELECT *

      FROM fragata."public"."estoque_produto";

       

       

       

       

      TRACE NÃO VAI CARREGAR NADA!;

       

       

      END IF

       

       

      DROP TABLE Informacao_A_Ser_Verificada, Informacao_Do_Banco;

        • Re: Dica de Relacionamento(Boas Praticas)
          agnaldo neves

          Vir coisas repetidas e consertei

           

          LCT:

          LOAD lancto,

               AutoNumber(Text(lancto)) as p_lancto,

               AutoNumber(Text(empresa)) as p_empresa,

               AutoNumber(Text(produto)) as p_produto,

              data as datalancto,  

              "custo_medio",

              "ult_custo";   

          SQL SELECT *

          FROM fragata."public"."estoque_lancto"

          WHERE data>= '$(v_data)' and data <='$(v_dataf)';

          store LCT into C:\postos\qvd\LCT.qvd(qvd);

           

           

          EST:

          LOAD  data as dataestoque,

           

           

               AutoNumber(Text(produto)) as p_produto,

           

           

              AutoNumber(Text(empresa)) as p_empresa,

              estoque,

              custo_medio as medioestoquex,

              ult_custo as ult_custoestoquex;

             

             

             

          SQL SELECT *

          FROM fragata."public"."estoque_produto";