Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content
Announcements
WEBINAR April 23, 2025: Iceberg Ahead: The Future of Open Lakehouses - REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Operacion con aggr

Buenos dias acudo a ustedes porque ya he intentado de todo y no encuentro explicacion tengo 2 expresiones con aggr la primera me da 0.03 y la segunda me da como resultado 0.02, pero al hacer la resta de las 2 el resultado me da 0.0020, porque podria estar ocurriendo esto??:

 

Expresion 1)

  ////pr act
sum(aggr(
(
sum(DISTINCT{<[Variable de
liquidacion]
={'K.P.C. Transporte'},[Número de la orden interna]={'22000006'},[Tipo de
liquidacion]
={'P'}>}
if(IsNull([Detalle
liquidacion]
)=-1,0,[Detalle liquidacion]))
/
sum(total DISTINCT{<[Variable de
liquidacion]
={'K.P.C. Transporte'},[Número de la orden interna]={'22000006'},[Tipo de
liquidacion]
={'P'}>}
if(IsNull([Detalle
liquidacion]
)=-1,0,[Detalle liquidacion]))
*
sum(distinct{<[Variable de
liquidacion]
={'Uso de redes'},[Número de la orden interna]={'22000006'},[Tipo de
liquidacion]
={'P'}>}
if(IsNull([Detalle
liquidacion]
)=-1,0,[Detalle liquidacion]))
)
,
[Número
de la orden interna]
,[Número de servicio],[NOMBRE_SERVICIO]
))

Expresion  2)

  //pr ant
sum(aggr(
(
sum(DISTINCT{<
Año={$(= Max(Año))},Mes={$(=
Month(AddMonths(Max(Fecha),-1)))
},[Variable de liquidacion]={'K.P.C.
Transporte'},
[Número de la orden interna]={'22000006'},[Tipo de
liquidacion]
={'P'}>}
if(IsNull([Detalle
liquidacion]
)=-1,0,[Detalle liquidacion]))
/
sum(total DISTINCT{<
Año={$(= Max(Año))},Mes={$(=
Month(AddMonths(Max(Fecha),-1)))
},[Variable de liquidacion]={'K.P.C.
Transporte'},
[Número de la orden interna]={'22000006'},[Tipo de
liquidacion]
={'P'}>}
if(IsNull([Detalle
liquidacion]
)=-1,0,[Detalle liquidacion]))
*
sum(distinct{<
Año={$(= Max(Año))},Mes={$(=
Month(AddMonths(Max(Fecha),-1)))
},[Variable de liquidacion]={'Uso de
redes'},
[Número de la orden interna]={'22000006'},[Tipo de
liquidacion]
={'P'}>}
if(IsNull([Detalle
liquidacion]
)=-1,0,[Detalle liquidacion]))
)
,
[Número
de la orden interna]
,[Número de servicio],[NOMBRE_SERVICIO]
))

para hacer la resta tomo toda la expresion 2 tal cual como esta y se la resto a la expresion 1 tal cual como esta asi como muestro, cabe notar que ambas expresiones y la que guarda el resultado son del mismo tipo de datos money

sum(aggr(
(
sum(DISTINCT{<[Variable de liquidacion]={'K.P.C. Transporte'},[Número de la orden interna]={'22000006'},[Tipo de liquidacion]={'P'}>}
if(IsNull([Detalle liquidacion])=-1,0,[Detalle liquidacion]))
/
sum(total DISTINCT{<[Variable de liquidacion]={'K.P.C. Transporte'},[Número de la orden interna]={'22000006'},[Tipo de liquidacion]={'P'}>}
if(IsNull([Detalle liquidacion])=-1,0,[Detalle liquidacion]))
*
sum(distinct{<[Variable de liquidacion]={'Uso de redes'},[Número de la orden interna]={'22000006'},[Tipo de liquidacion]={'P'}>}
if(IsNull([Detalle liquidacion])=-1,0,[Detalle liquidacion]))
)
,
[Número de la orden interna],[Número de servicio],[NOMBRE_SERVICIO]
))

-

sum(aggr(
(
sum(DISTINCT{<
Año={$(= Max(Año))},Mes={$(= Month(AddMonths(Max(Fecha),-1)))},[Variable de liquidacion]={'K.P.C. Transporte'},[Número de la orden interna]={'22000006'},[Tipo de liquidacion]={'P'}>}
if(IsNull([Detalle liquidacion])=-1,0,[Detalle liquidacion]))
/
sum(total DISTINCT{<
Año={$(= Max(Año))},Mes={$(= Month(AddMonths(Max(Fecha),-1)))},[Variable de liquidacion]={'K.P.C. Transporte'},[Número de la orden interna]={'22000006'},[Tipo de liquidacion]={'P'}>}
if(IsNull([Detalle liquidacion])=-1,0,[Detalle liquidacion]))
*
sum(distinct{<
Año={$(= Max(Año))},Mes={$(= Month(AddMonths(Max(Fecha),-1)))},[Variable de liquidacion]={'Uso de redes'},[Número de la orden interna]={'22000006'},[Tipo de liquidacion]={'P'}>}
if(IsNull([Detalle liquidacion])=-1,0,[Detalle liquidacion]))
)
,
[Número de la orden interna],[Número de servicio],[NOMBRE_SERVICIO]
))

1 Solution

Accepted Solutions
Carlos_Reyes
Partner - Specialist
Partner - Specialist

Has intentado agrupar cada una de las expresiones con round() ?

Por ahí hay una o varias discusiones acerca de cómo QlikView trata los decimales y porqué a veces dan resultados inesperados o no tan exactos. Busca una discussión de John Witherspoon... creo que es la mejor.

Sin embargo, utilizar round para definiir el número de decimales por lo general es suficiente.

View solution in original post

2 Replies
Carlos_Reyes
Partner - Specialist
Partner - Specialist

Has intentado agrupar cada una de las expresiones con round() ?

Por ahí hay una o varias discusiones acerca de cómo QlikView trata los decimales y porqué a veces dan resultados inesperados o no tan exactos. Busca una discussión de John Witherspoon... creo que es la mejor.

Sin embargo, utilizar round para definiir el número de decimales por lo general es suficiente.

Not applicable
Author

Muchisimas gracias Carlos de veras me sirvio mucho