Problema relativo alle misure semi-additive: somma le istantanee per ogni mese, ma non tra i mesi

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

  •  05-07-2019
  •  | 
  •  

Domanda

Esperto di SQL ma nuovo di MDX, ho problemi a risolvere il problema:

Ho una tabella dei fatti che contiene snapshot dei saldi dei conti mensili. Devo arrotolare i saldi come misura semi-additiva - la somma semplice non funziona, ovviamente, per i saldi. Tuttavia, DEVO sommare tutti i saldi entro OGNI mese, separatamente, sommando i saldi per tutti i conti, quindi il "lastnonempty" nozione non funziona neanche per me. Esempio, se i fatti sembrano così:

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.

E ho una dimensione account che raggruppa gli account in una categoria principale / categoria secondaria / gerarchia di account, ho bisogno di un output come questo che somma i saldi di ogni mese per tutti gli account:

Month        Total
January 09   $400
February 09  $850

E suddiviso per tipo di account:

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

MA, i saldi NON devono essere sommati tra mesi, trimestri o anni, perché non ha senso e verrebbero conteggiati due volte. Qualsiasi intervallo di tempo più lungo dovrebbe mostrare la chiusura del periodo:

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

Se utilizzo lo stock "lastnonempty" aggregazione, mi sembra di ottenere solo l'ultima riga letterale dell'account per un mese, non la somma dei saldi dell'account per l'ultimo mese. È come se il totale del mese mostrasse solo il saldo prelevato da un conto casuale presente in quel mese e non il totale. (Sono sicuro che non è davvero casuale, probabilmente ne sta scegliendo uno in base all'ordine di archiviazione o qualcosa del genere)

Sono sicuro di fare qualcosa di semplice, sbagliato ...

È stato utile?

Soluzione

Penso di aver risolto questo: i miei dati di origine con i saldi erano molto scarsi - c'era una riga solo per i saldi diversi da zero e NESSUNA riga per i conti quando il saldo è zero. Ciò ha reso tutto stravagante (immagina come inventario, dove hai conteggi di parti e quei conteggi sono spesso zero, ma quando sono 0 la riga manca solo dalla tabella dei fatti)

Sono stato in grado di creare una vista sull'origine dati che "aggiungerebbe di nuovo in" tutte le righe aggiuntive, con saldo zero, e successivamente la funzione ClosingPeriod () ha iniziato a funzionare come previsto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top