Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
BI Consultant
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
BI Consultant
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.
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.
BI Consultant
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
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
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
BI Consultant
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ú.