2010-10-19 11 views
3

J'ai la situation suivante dans mon cube:Exécution de calculs MTD/YTD sur plusieurs calendriers dans les services d'analyse

Le magasin A utilise le calendrier Cal1. Leur mois de vente commence le 5 janvier. Le magasin B utilise le calendrier Cal2. Leur mois de vente commence le 10 janvier. Boutique C ... etc

Les calendriers de magasin ne peuvent pas être simplement représentés comme des offsets d'un calendrier principal. Ils ont différents jours ouvrables, jours fériés, etc.

Je dois produire un rapport journalier (services de rapports) avec la date du calendrier en tant que paramètre. La liste des magasins est également un paramètre multi-sélection. Si un utilisateur sélectionne le 15 janvier, je dois afficher les ventes combinées de MTD pour tous les magasins sélectionnés dans les paramètres. Donc, cela signifierait les 10 premiers jours de vente pour le magasin A et les 5 premiers jours de vente pour le magasin B, etc.

Des idées comment je peux faire ce travail? Je devrai également fournir les chiffres de l'année de la même manière.

J'implémente plusieurs calendriers en utilisant une table de transition entre mes dimensions de date et de calendrier. C'est la technique décrite ici: http://duncansutcliffe.wordpress.com/2010/06/11/a-better-date-dimension/

Je ne peux pas coder en dur les calendriers car il est nécessaire d'ajouter éventuellement plus dans le futur sans modifier le schéma.

Répondre

2

Je ne suis pas sûr que je comprends les données de ventes commencer jours, mais si je fais alors la solution est de faire une dimension supplémentaire comme un « calendrier de déclaration » comme point d'harmonie entre les calendriers réels

Chaque boutique a un décalage connu avec le calendrier des rapports, donc pour le magasin A, 5 jours, pour le magasin B, 10 jours etc.

Lorsque vous ajoutez des données factuelles, vous devez également calculer une date de reporting en utilisant le décalage. Alors Shop A 5 Jan est en fait le 1 janvier etc

Lors de la déclaration, l'utilisateur sélectionne une date sur le calendrier des rapports, et les faits sont sélectionnés en fonction de ce

par exemple si l'utilisateur calendrier de rapport sélectionné le 15 janvier, il ne sélectionnez les dates réelles 1 à 15 janvier et le calendrier de rapports jusqu'à 15 et seulement Jan

données sélectionnées serait Boutique 5 à 15, Boutique B 10 à 15

1 à 4 Jan pour Shop A et 1 à 9 pour Shop B serait en Dec du calendrier des rapports, et non inclus en raison du filtre du calendrier des rapports Jan

+0

Vous avez la bonne idée, mais il est essentiel de noter que un décalage ne peut pas être utilisé. Chaque calendrier a différents jours de travail. Nous ne pouvons pas supposer que chaque calendrier peut être représenté par un décalage du calendrier annuel principal. – Alex

+0

Hmm, ça marche pour moi. Lire à nouveau? Il peut y avoir un décalage pour chaque calendrier ou jeu de données. Le «calendrier des rapports» ne représente aucune date réelle, il fournit simplement une référence à une «période de déclaration», habituellement un «mois de déclaration» ou une «année de déclaration». par exemple. Si un fait existe dans une plage de données ET existe dans la plage de rapports (mois), il est sélectionné – TFD

+0

Oui, je vois .... Je vais essayer une implémentation. – Alex