Forum Discussion
Consulta MDX
Hola equipo,
Me gustaría calcular la suma del valor excluyendo los valores 'nulos' en la columna, he intentado en SSAS cube-new MDX como se muestra a continuación, pero el resultado de la suma es incorrecto en lugar del resultado de 9845 es: -5662 (viene como valor negativo e incorrecto)
my MDX: ( sum([Medidas].[ Tiempo de espera en segundos])/sum([Medidas].[ Total]))/60
Por favor, sugiérame o corríjame donde me perdí.
Gracias
9 Replies
- Syndicate_Admin
Administrator
En MDX (supongo que está usando SSAS Multidimensional) usar la función SUM con una medida de la manera en que lo está haciendo aquí en realidad no tiene ningún efecto: se usará el comportamiento de agregación predeterminado de la medida. Por lo tanto, use el siguiente MDX en una medida:
([Medidas]. [Tiempo de espera en segundos]/[Medidas]. [Total]) /60
debería darle el mismo resultado incorrecto. Además, MDX ignora automáticamente los valores nulos mientras agrega de todos modos. ¿Puede proporcionar más detalles, con datos de muestra, de lo que quiere hacer aquí?
Es posible un comportamiento de agregación más complejo utilizando instrucciones SCOPE. La siguiente entrada de blog puede ayudar:
Chris
- Syndicate_Admin
Administrator
Hola chris,
Tengo una tabla como la siguiente, ya que necesito excluir el valor 'NULL' y obtener la suma de 'WaitTimeInSec' usando SSAS MDX en la medida. Amablemente sugerir
ID de cliente Tiempo de espera en segundos 123 233456 654 9875 786 NULO 445 664839 334 5768 778 55364 236 NULO Total 969302 Saludos
SRA.
- Syndicate_Admin
Administrator
@cpwebb ,
Sí, estoy usando la tabla multidimensional SSAS aquí intenté crear una nueva medida calculada como la siguiente
MDX (suma del tiempo de espera en minutos) : sum([Medidas].[ Tiempo de espera en segundos])
Aquí está mi tabla:
Tiempo de espera en segundos Total 58896 5568 56689 4869 NULO 9562 96347 7856 77546 4489 NULO 8965 89647 7854 Total esperado de waitTimeInSec = 379125
no estoy seguro de que pueda deberse a valores NULL el resultado viene : -266545 ( como negativo)
por favor sugiera cómo crear una medida reemplazando los valores NULL como 0 y la suma del total.
Gracias
SRA.
- Syndicate_Admin
Administrator
¿Es waitTimeInSec en sí mismo una medida calculada? Si es así, ¿cuál es la definición? No creo que los nulos sean el problema aquí.
Chris
- Syndicate_Admin
Administrator
He creado una medida en la columna de tabla de hechos de referencia de nivel de cubo SSAS (que es waitTimeInSec)
por lo que el resultado de la medida mientras que la suma aparece erróneamente como total negativo. ¿Esto se debe a NULL en esa columna?
SRA.
- Syndicate_Admin
Administrator
No creo que los nulos sean el problema, no veo cómo resultarían en un valor negativo aquí. ¿Qué tipo de agregación utiliza la medida waitTimeInSec? Como dije, si ya has construido una medida, escribe algo como suma([Medidas].[ Tiempo de espera en segundos]) es redundante y [Medidas].[ Tiempo de espera en segundos] debería darle el mismo resultado incorrecto.
- Syndicate_Admin
Administrator
Yo también me pregunto sobre el resultado a pesar de que [Wait Time In Sec] es un tipo de datos int y creé solo una medida que se usa la función de suma.
sum([Medidas].[ Tiempo de espera en segundos])
Gracias
- Syndicate_Admin
Administrator
Como dije, no creo que los nulos sean el problema. Deberá proporcionar muchos más detalles sobre el diseño de su cubo (publique capturas de pantalla de todas las propiedades relevantes, etc.) para solucionar esto.
- Syndicate_Admin
Administrator
Claro que permítanme hacer un análisis profundo sobre este tema y compartiré los detalles pronto.
Gracias por su pronta respuesta.
Saludos
SRA.