Problème de mesures semi-additives - somme d'instantanés pour chaque mois, mais pas pour plusieurs mois

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

  •  05-07-2019
  •  | 
  •  

Question

Maîtrisant SQL mais débutant dans MDX, j'ai du mal à comprendre ce qui se passe:

J'ai une table de faits qui contient des instantanés des soldes de compte chaque mois. Je dois faire la synthèse des soldes en tant que mesure semi-additive - la somme directe ne fonctionne pas, bien entendu, pour les soldes. Cependant, j’ai besoin de faire la somme de tous les soldes de CHAQUE mois, séparément, en additionnant les soldes de tous les comptes, et ainsi de suite. la notion ne fonctionne pas pour moi non plus. Exemple, si les faits ressemblent à ceci:

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.

Et j’ai une dimension de compte qui regroupe les comptes dans une catégorie majeure / une catégorie mineure / une hiérarchie de comptes;

Month        Total
January 09   $400
February 09  $850

Et ventilé par type de compte:

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

MAIS, les soldes ne doivent PAS correspondre à des mois, des trimestres ou des années, car cela n’a aucun sens, et ils seraient comptés deux fois. Tout intervalle de temps plus long devrait indiquer la fin de la période:

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 j'utilise le stock "lastnonempty" l’agrégation, il semble que je n’obtienne que la dernière ligne de compte littérale pour un mois, et non la somme des soldes des comptes du mois précédent. C'est comme si le total du mois ne montrait que le solde d'un compte au hasard présent dans ce mois, et non le total. (Je suis sûr que ce n'est pas vraiment aléatoire, c'est probablement en choisir un en fonction de l'ordre de stockage ou autre chose.)

Je suis sûr que je ne fais que quelque chose de simple, de mal ...

Était-ce utile?

La solution

Je pense avoir résolu celle-ci: mes données source contenant les soldes étaient très rares - il y avait une ligne uniquement pour les soldes non nuls et NO pour les comptes lorsque le solde est égal à zéro. Cela a tout gâté (imaginez-vous comme un inventaire, où vous avez des comptes de pièces, et ces comptes sont souvent nuls, mais quand ils sont 0, la rangée manque tout simplement de la table des faits)

J'ai été en mesure de créer une vue au niveau de la source de données qui serait "rajouter dans". toutes les lignes supplémentaires, avec des soldes nuls, et après cela, la fonction ClosingPeriod () a commencé à fonctionner comme prévu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top