Bonjour
Je dois refaire entièrement un cube car l'actuel est non performant et plein de bugs... (l'année commence bien )
Je suis en train de faire ma structure de table de faits (commandes) afin d'optimiser les traitements.
Un client passe des commandes qu'il modifie, annule ou valide. Dans notre base, on n'archive rien, c'est le DWH qui va s'occuper de ça.
- Numéro du client
- Numéro de commande (incrémenté après chaque commande validée)
- Date de création de la commande
- Date de suppression de la commande
- Date de modification de la commande
- Date de validation de la commande
- Action (créa - annul - modif - validation)
- Numéro de ligne du client
Voici ce que je peux avoir dans ma table :
...
0001 - 01 - 04/12/2009 - vide - 07/12/2009 - vide - ANNUL - 8
0001 - 01 - 07/12/2009 - vide - 11/12/2009 - vide - CREA - 9
0001 - 01 - 07/12/2009 - 08/12/2009 - 11/12/2009 - vide - MOD - 10
0001 - 01 - 07/12/2009 - 09/12/2009 - 11/12/2009 - vide - MOD - 11
0001 - 01 - 07/12/2009 - 10/12/2009 - 11/12/2009 - vide - MOD - 12
0001 - 01 - 07/12/2009 - 10/12/2009 - 11/12/2009 - vide - ANNUL - 13
0001 - 01 - 12/12/2009 - vide - vide - 13/12/2009 - CREA - 14
0001 - 01 - 13/12/2009 - vide - vide - 13/12/2009 - VALID - 15
0001 - 02 - 14/12/2009 - vide - vide - CREA - 23/12/2009 - 16
...
Si je regarde le nombre d'actions sur la semaine du 7 au 13/12, je vois qu'il y a 7 actions réparties en 2 créations, 3 modifs, 2 suppressions et 1 validation.
Jusque là, tout va bien.
C'est là où ça se complique et j'espère que je vais être claire. Si une action de création jusqu'à annulation s'est déroulée pendant la semaine, ils ne veulent pas le savoir. Voici donc les chiffres qui les intéressent :
- nombre de créations = 1 (ligne 14)
- nombre de modifications = 0 (les 3 modifs ont lieu dans un bloc crea - annul)
- nombre d'annulations = 1 (ligne 8)
- nombre de validations = 1 (ligne 15)
Ils sont tordus quand même...
Je vous avoue que ma connaissance en MDX est plus que limitée et je ne vois vraiment pas comment sortir ces chiffres via une mesure. Je pense qu'il faut que je passe par un membre calculé donc du MDX. J'ai trouvé comment faire en SQL, alors si vous avez une idée du machin en MDX se sera très sympa (juste pour une requête, je me débrouillerai ensuite)
Nombre de créations : Nombre de commandes avec date de création dans la zone concernée (ici semaine 7 au 13 décembre) et [ date d'annulation vide ou date d'annulation > à la zone concernée] et action = CREA
Nombre d'annulations : Nombre de commandes avec date de suppression dans la zone concernée (ici semaine 7 au 13 décembre) et date de création < à la zone concernée et action = ANNUL
Idem ou presque pour les validations
Nombre de modifications : Nombre de commandes avec date de modif dans la zone concernée et date CREA <= à la zone concernée et [ date d'annul vide ou > à la zone concernée ]
Ou alors si vous avez une autre idée pour la structure de ma table, je suis preneuse.
Merci de votre aide.
Iza
Partager