Open Business Intelligence

La red del Business Intelligence

Hola, buenos días a todos.

En mi cubo, tengo definidas dos Measures, Cantidad y Precio.

La idea es crear un miembro calculado llamado Total que me calcule la cantidad multiplicada por el precio. Añadiendo un calculated Member en el que le pongo la fórmula [Measures].[Cantidad]*[Measures].[Precio]

Pensé que con esto ya estaría hecho, pero resulta que cuando hago el analisis con la consola, y veo los datos por productos por ejemplo, el cálculo que me hace es la suma de las cantidades multiplicado por la suma de los precios. Y la idea es hacer la suma de las cantidades multiplicadas por el precio.

Para explicarme mejor:

Me calcula esto: SUM(ord.CANTIDAD) * SUM(ord.PRECIO)

Pero yo quiero que haga esto: SUM (ord.CANTIDAD * ord.PRECIO).

He visto que hay una propiedad llamada  order solver, en la documentación pone este ejemplo: <CalculatedMemberPropierty name="SOLVE_ORDER" value="2000"/>. He probado a poner 2000 y 2005 pero no veo diferencia.

Alguien sabe algo?? Muchas gracias y un saludo.

Visitas: 2955

Respuestas a esta discusión

Buenas, con la última versión de schema workbench puedes hacer lo siguiente:
1.creas un nuevo miembro calculado.
2.seleccionas el nuevo miembro calculado y bajas al nodo "Formula".
3.colocas en cdata: [Measures].[Cantidad]*[Measures].[Precio]
4.publicas y actualizas la caché desde pentaho.

Con esto te debería funcionar perfectamente. Avisa cómo te fue, y en caso de que te sigas teniendo problemas adjunta una imagen de cómo se ve tu análisis.

Saludos.
Sí, así es como lo tenía hecho.

Adjunto imágenes del schema, análisis y querys en la base de datos.

Como se puede ver en la query en la base de datos de sql server, suma cantidades por un lado, suma precios por otro lado y luego multiplica, cuando debería de multiplicar primero y luego sumar.

Gracias y un saludo.




Bernabeu R. Dario dijo:
Buenas, con la última versión de schema workbench puedes hacer lo siguiente:
1.creas un nuevo miembro calculado.
2.seleccionas el nuevo miembro calculado y bajas al nodo "Formula".
3.colocas en cdata: [Measures].[Cantidad]*[Measures].[Precio]
4.publicas y actualizas la caché desde pentaho.

Con esto te debería funcionar perfectamente. Avisa cómo te fue, y en caso de que te sigas teniendo problemas adjunta una imagen de cómo se ve tu análisis.

Saludos.
Archivos adjuntos
Fijate que la primera fila corresponde a "Todos los productos" y por lo tanto muestra los valores a nivel general, luego para cada producto en particular (18th Century..., 1900s Vintage....) hace el cálculo que le corresponde (el indicado en el miembro calculado).

Saludos.


Bernabeu R. Dario dijo:
Fijate que la primera fila corresponde a "Todos los productos" y por lo tanto muestra los valores a nivel general, luego para cada producto en particular (18th Century..., 1900s Vintage....) hace el cálculo que le corresponde (el indicado en el miembro calculado).

Saludos.


Sí, pero si te fijas en la primera query de sqlserver, poniendo al producto 18th century schooner como ejemplo, haciendo sum(quantityordered * priceeach) nos da 96053,47 y si vemos ese ejemplo en el análisis (es el segundo producto), el resultado es 2579414,44, que mirando la segunda query que pongo en sqlserver, es el resultado de (sum(quantityordered) * sum(priceeach)).

Espero que ahora se me entienda lo que quiero decir, gracias por la respuesta y un saludo.
Buenas. Ahora entendí.

Si tomamos como ejemplo 18th century schooner:
* Cantidad = 991
* Precio = 2'602,84
* Total = (991 x 2602,84) = 2'579'414,4
Con lo cual la medida calculada estaría haciendo los cálculos correctamente.

Con respecto a las consultas sql, me parece bastante raro que te den valores diferentes, ya que deberían darte los mismos valores. Tanto "sum(cantidad*importe)" como "sum(cantidad)*sum(importe)" deberían darte los mismos resultados.

Saludos.

RSS

Distintivo

Cargando…

© 2024   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio