Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Ayuda expresión set analysis

Hola a todos.

Necesito sacar la suma de los importes del albarán para lo cual tengo la siguiente expresión:

sum({<cargo_abono={0}>}importe) - sum({cargo_abono={1}>}importe)

Hasta aquí todo bien, pero la suma de los importes es mayor a la verdadera y esto es porque hay un código de artículo que se llama KIT y lo conforman varios artículos y la expresión anterior suma los importes de todos los artículos del albarán y necesito descartar todos los artículos del albarán cuando haya un KIT y sumar solo el importe de éste. Os pongo un ejemplo por si no me expreso bien:

ALBARÁN:

KIT         100€

ART1       90€

ART2       20€

ART3       15€

TOTAL ALBARAN: 100€

Un saludo

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Gabriel,

Depende del resto de análisis que tengas que realizar, si Importe2 tiene que ser igual a cero, puedes usar la expresión, por ejemplo

Sum({< Importe2 = {0} >} Importe)

Si de todas formas estos son siempre los únicos datos que te interesan, utiliza la misma condición de Importe2 en el WHERE en lugar de crear un campo nuevo, así cargarás sólo esos registros (y probablemente el rendimiento será mayor):

LOAD *;

SQL SELECT ...

FROM ...

WHERE B2GELC <> 0 AND B2GELC <> B2GELN;

Espero que te ayude

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

View solution in original post

7 Replies
Miguel_Angel_Baeyens

Hola Gabriel,

Si el KIT va a estar siempre, y lo que pueden aparecer o no son los artículos, esto debería funcionar, suponiendo que el campo que contiene el valor "KIT" es "articulo":

Sum({< cargo_abono = {0}, articulo = {'KIT'} >} importe) - Sum({< cargo_abono = {1}, articulo = {'KIT'} >} importe)

Sin conocer tu modelo de datos, si esto no soluciona tu problema, o si el articulo puede ser o no KIT, seguramente necesites crear una condición en la expresión o en el script, de forma que tengas un campo importe solo para aquellos artículos cuyos impores realmente deben sumarse. Eso sí, la condición ralentizará mucho el dibujo de los gráficos.

Un saludo

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

Not applicable
Author

También hay otra manera de ver esto:

Los importes válidos son los que el B2GELC es cero o en caso de no serlo es igual a B2GELN. Si lo vemos al revés sería así: Los importes no válidos son los que el B2GELC no es cero y no es igual a B2GELN.

Saludos.

Miguel_Angel_Baeyens

Gabriel,

Crea entonces un nuevo campo importe en el script, me parece que es lo mejor:

LOAD ...,

     If(B2GELC <> 0 AND B2GELC <> B2GELN, B2GELC, 0) AS Importe2

FROM ...

Un saludo.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

Not applicable
Author

Hola Miguel.

El problema que tengo es que el KIT no aparece siempre,aparece muy de vez en cuando y con unos importes muy elevados, la expresión que me das calculo el importe del KIT en la fecha seleccionada. Sí, el código artículo se llama KIT, bueno para ser más concretos se llama ESC001.

Gracias

Not applicable
Author

Miguel.

Algo funcionó pero no del todo, los campos B2GELC y B2GELN son lineas de detalle y sus valores van en B2GELC de 0 a 16 y en B2GELN de 0 a 222. Al crear el campo importe2 y seleccionar en el cuadro de lista el valor 0 me da el resultado deseado. Puedo bloquear el valor cero para que siempre esté seleccionado, ¿podría ocultar el cuadro de lista, o podría darle siempre por defecto el valor 0 en el script?

Gracias

Miguel_Angel_Baeyens

Gabriel,

Depende del resto de análisis que tengas que realizar, si Importe2 tiene que ser igual a cero, puedes usar la expresión, por ejemplo

Sum({< Importe2 = {0} >} Importe)

Si de todas formas estos son siempre los únicos datos que te interesan, utiliza la misma condición de Importe2 en el WHERE en lugar de crear un campo nuevo, así cargarás sólo esos registros (y probablemente el rendimiento será mayor):

LOAD *;

SQL SELECT ...

FROM ...

WHERE B2GELC <> 0 AND B2GELC <> B2GELN;

Espero que te ayude

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

Not applicable
Author

Miguel.

Gracias por tu ayuda, con esto ya tengo casi terminado el proyecto de ventas.

Muchísimas gracias, da gusta contar con gente como tú.