Problema de medidas semi-aditivas: sumar instantáneas de cada mes, pero no en meses

StackOverflow https://stackoverflow.com/questions/1801462

  •  05-07-2019
  •  | 
  •  

Pregunta

Competente con SQL pero nuevo en MDX, tengo problemas para entender esto:

Tengo una tabla de hechos que contiene instantáneas de saldos de cuentas mensuales. Necesito resumir los saldos como una medida semi-aditiva, la suma recta no funciona, obviamente, para saldos. Sin embargo, SÍ debo sumar todos los saldos dentro de CADA mes, por separado, al sumar los saldos de todas las cuentas, y por lo tanto el " lastnonempty " La noción tampoco me funciona. Ejemplo, si los hechos se parecen a esto:

Date        AccountNo     Balance
2009-01-31  1111          $100
2009-01-31  2222          $100
2009-01-31  4444          $100
2009-01-31  5555          $100

2009-02-28  1111          $100
2009-02-28  2222          $200
2009-02-28  3333          $500
2009-02-28  5555          $50

etc.

Y tengo una dimensión de cuenta que agrupa las cuentas en una categoría principal / categoría menor / jerarquía de cuentas, necesito un resultado como este que sume los saldos de cada mes en todas las cuentas:

Month        Total
January 09   $400
February 09  $850

Y desglosado por tipo de cuenta:

Month        Total
January 09   $400
  Type 1      $200
    1111       $100
    2222       $100
  Type 2     $200
February 09  $850
  Type 1     $300
  Type 2     $550

PERO, los saldos NO deben sumarse en meses, trimestres o años, porque no tiene sentido, y se contabilizarían dos veces. Cualquier intervalo de tiempo más largo debe mostrar el cierre del período:

Quarter    WRONG    Correct
Q1         $1250    $850   // should be the sum of balances for the *last* month in Q1
  Type 1   $500     $300
  Type 2   $759     $550

Si uso la acción " lastnonempty " agregación, parece que solo obtengo la última fila literal de la cuenta durante un mes, no la suma de los saldos de la cuenta del último mes. Es como si el total del mes muestra solo el saldo tomado de una cuenta aleatoria presente en ese mes, y no el total. (Estoy seguro de que no es realmente aleatorio, probablemente esté eligiendo uno según el orden de almacenamiento o algo así)

Estoy seguro de que solo estoy haciendo algo simple, mal ...

¿Fue útil?

Solución

Creo que resolví este problema: mis datos de origen con los saldos eran muy escasos: solo había una fila para los saldos distintos de cero y NO filas para las cuentas cuando el saldo es cero. Eso hizo que todo fuera un poco complicado (imagínese como inventario, donde tiene recuentos de partes, y esos recuentos a menudo son cero, pero cuando son 0, entonces la fila simplemente falta en la tabla de datos)

Pude crear una vista en la fuente de datos que " volvería a agregar en " todas las filas adicionales, con saldo cero, y después de eso, la función ClosingPeriod () comenzó a funcionar como se esperaba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top