2 Replies Latest reply: Nov 22, 2011 5:02 PM by Aderlan Rodrigues RSS

    Calcular campos dentro da propia tabela

      Estimado Amigos, se alguem pode me ajudar

       

      Tenho a seguinte tabela no qlikview

       

      e gostaria de saber como posso faver o calculo INDICADOR que seria DIVIDIR O VALOR DA COLUNA POR UN TOTAL DA COLUNA E EXPRESAR EM UM CAMPO OU VARIAVEL

       

      TIPO_CUENTASGRUPO_CUENTASCUENTA2.0082.0092.0102.011Total
      INGRESOINGRESOS FINANCIEROS-75-1.008-343--1.426
      INGRESOPRESTACION DE  SERVICIOS-2.351.926-1.889.493-1.614.275-1.020.009-6.875.702
      INGRESOVENTAS DE PRODUCTOS--221-3.473-1.731-5.425
      INGRESOTotal-2.352.001-1.890.722-1.618.090-1.021.740-6.882.553
      GASTOSCOSTOS DE VENTAS DE PRODUCTOS01642.3541.4824.000
      GASTOSCOSTOS FINANCIEROS586-48-634
      GASTOSGANANCIAS Y PERDIDAS  EN INMOBILIZADO825-15.952-103.7814.951-113.957
      GASTOSGASTOS CON BIENES1.668.2171.208.9161.133.245748.4044.758.783
      GASTOSGASTOS CON PERSONAL503.773550.055536.101349.7401.939.669
      GASTOSGASTOS GENERALES16.44613.9377.4083.86741.657
      GASTOSGASTOS POR VENTAS8032.102-5.2571.468-884
      GASTOSIMPUESTOS Y TASAS2902.5475.3092.44210.589
      GASTOSPROPAGANDA Y  PUBLICIDAD14--163177
      GASTOSUTILIDADES Y  SERVICIOS4.2288.32613.1726.77632.503
      GASTOSTotal2.195.1821.770.0951.588.6001.119.2946.673.171
      Guaranies
      INDICADORGASTOS CON PERSONAL / Total INGRESO21%29%33%34%28%
        • Re: Calcular campos dentro da propia tabela
          Aderlan Rodrigues

          Eliandro,

           

          Faça o seguinte.

           

          Carregue a tabela usando grop by e sum nas colunas que você quer calcular o total incluindo um campo auxiliar, algo assim:

          Totais:

          LOAD 1 as IDTotal,

               Coluna1 as DColuna1,

               sum(Coluna2) as TColuna2,

               sum(Coluna3) as TColuna3,

               sum(Coluna4) as TColuna4

          From TABELA

          Group By Coluna1;

           

          Depois carrega a tabela normalmente, mas também incluindo o campo auxiliar.

          Dados:

          LOAD 1 as IDTotal,

               Coluna1,

               Coluna2,

               Coluna3,

               Coluna4

          From TABELA;

           

          Então, após esse carregamento, faça um Left Join das tabelas que será pelo campo auxiliar (IDTotal) e pode dropar (apagar) as outras duas tabelas, o resultado será algo assim:

           

          IDTotal     Coluna1     Coluna2     Coluna3     Coluna4     DColuna1     TColuna2     TColuna3     TColuna4...

          1             ABC          5               10             15              ABC               12               19                28

          1             DEF          3                6              9                DEF               12               19                28

          1             GHI           4                3              4                GHI                12               19                28

           

          Com isso, basta fazer uma carregamento residente e então os calculos normalmente, exemplo:

          (TColuna2/Coluna2)*100 = (12/5)*100 = 41,67%

           

          Então, apartir dai, é manipulação  simples.

           

          Também pode ser que você use CROSSTABLE para facilitar so caucolos, ou ter melhores filtros, mas o processo é o mesmo, com ou sem crosstable.

           

          Use e abuse dos LOAD, RESIDENT  e DROP das tabelas, é tudo em memória, será rápido e o resultado é bem legal. Mas não esqueça de dropar as tabelas que não terão utilidade para você, pois a não se que tenha um server com MUITA memória, vai ter muito disperdício, logo, é bom apagar os loads que não tem utilidade.

           

          Espero que ajude, Abraço.