sql >> Base de Datos >  >> RDS >> Sqlserver

cantidad de línea ssas mdx dividida por SUM

¡Vale! Creo que entiendo lo que quieres, prueba esto. Con Raíz puedes obtener el Todo de todas las dimensiones.

Divide(
  [Measures].[Sales Line Amount AC Budget hidden]
 ,AGGREGATE(
   Root()
  ,[Measures].[Sales Line Amount AC Budget hidden]
  )
)

EDITAR:

No creo que haya una manera bastante fácil de hacerlo. Tal vez eche un vistazo a Axis(1) en lugar de raíz.

No probé esto en un cubo solo dentro de una consulta... y funciona...

Divide(
  [Measures].[Sales Line Amount AC Budget hidden]
 ,AGGREGATE(
   Axis(1)
  ,[Measures].[Sales Line Amount AC Budget hidden]
  )
)

EDIT2:

Ya que quieres que esto funcione con Excel. No hay una manera clara de hacer que funcione sin saber exactamente qué dimensiones desea "Pesar". Excel funciona con subcubos, lo que significa que la función Axis en realidad devuelve TODOS los miembros de ese eje.

No hay forma de saber exactamente qué miembros se muestran realmente en MDX. Este debe ser un cálculo del lado del cliente.

En realidad, puede hacer esto muy fácilmente en EXCEL simplemente seleccionando el campo yendo a OPCIÓN y yendo a "Mostrar valores como". Con "% Gran Total" obtendrá exactamente el porcentaje que está buscando.