Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

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%
2 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

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.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Eliandro, conseguiu resolve?

* Se a resposta foi útil para você, não esqueça de marcar como resposta, assim ajuda outras pessoas na comunidade a encontrar soluções para os problemas. *

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)