Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

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

  • 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:

    https://blog.crossjoin.co.uk/2013/05/29/aggregating-the-result-of-an-mdx-calculation-using-scoped-assignments/

    Chris

  • 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 clienteTiempo de espera en segundos
    123233456
    6549875
    786NULO
    445664839
    3345768
    77855364
    236NULO
    Total 969302

    Saludos

    SRA.

  • @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 segundosTotal
    588965568
    566894869
    NULO9562
    963477856
    775464489
    NULO8965
    896477854

    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.

  • ¿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

  • @cpwebb ,

    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.

  • 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.

  • @cpwebb ,

    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

  • 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.

  • @cpwebb ,

    Claro que permítanme hacer un análisis profundo sobre este tema y compartiré los detalles pronto.

    Gracias por su pronta respuesta.

    Saludos

    SRA.