En utilisant une transformation de calculer 5 dernières valeurs dans une requête SQL

Voici une de mes tâches récent et intéressant:

Calculer certains paramètres uniquement pour les éléments qui sont en grande demande. Un élément est "en demande", si ses ventes en valeur ont été plus grande que la constante dans chacun des X des 5 derniers mois (y compris le mois en cours).

Solution

Premier paramètre à nouveau des tâches:

Un article Une est valable dans le mois M, comme un article à une demande importante, si son Abverkäufe en chacun des 5 derniers mois (y compris le mois en cours) ont été plus une constante X (par exemple était X = 100). Nous voulons trouver et dans un rapport représentent le plus efficacement possible tous à une telle combinaison A et M (que nous avons besoin d'un filtre métriques à utiliser plus tard pour pouvoir).

Voici ma solution est en utilisant une seule transformation. Je vois l'avantage de cette solution dans le fait que seulement une fois que le tableau général très grand effet, un accès.

Pour tous les exemples que je utilisera conformément à la norme installé le projet dans ma Tutorial Blog MicroStrategy. Donc vous pouvez facilement copier mes exemples, et l'essayer. En outre, il est possible de comparer plusieurs solutions d'un problème directement.

Comme je l'ai trahi, je utiliser une transformation dans ma solution. Par conséquent, une vue de transformations doivent être définies comme la première. La source de données pour le projet «MicroStrategy Tutorial" est une base de données ACCESS TUTORIAL_DATA_7200.mdb.

Nous mettons sur le point de vue suivant:

SELECT t1.MONTH_ID, t2.MONTH_ID AS PREV_MONTH_ID, DateDiff ( "m", t2.MONTH_DATE, t1.MONTH_DATE) MONTH_DIFF AS
DE LU_MONTH, t1, t2 AS LU_MONTH
WHERE (((DateDiff ( "m", t2.MONTH_DATE, t1.MONTH_DATE)) entre 0 et 4))
ORDER BY t1.MONTH_ID, t2.MONTH_ID;

Le VB-DateDiff fonction fournit ici le nombre de mois complets, qui sont remis entre les valeurs de date. Les dépenses de la vue est alors d'environ de manière à:

Image 1

Nous désignons l'View "MONTH_TO_5_LAST_MONTHS". Maintenant, la vue dans le catalogue Warehouse est importée, par la suite, sur la table logique nouveau les objets suivants sont définis:

Transformation "charge de 5 mois»

Image 2

Attribut "Mois Diff"

Month Diff

Month Diff

En outre, la forme d'attribut Mois @ ID devrait être étendu automatiquement au champ MONTH_ID la nouvelle table:

Month@ID

Maintenant, nous voulons construire un Metrik, qui "a bit-plan avec 5 chiffres représente" à la forme *****. Chaque astérisque correspond de ce fait un mois: l'astérisque linkste se réfère au mois dans la ligne considérée rapport, l'astérisque à côté du mois précédent (par rapport à la ligne considérée rapport), etc

En lieu et place de chaque astérisque nous voulons indiquer la mention «X», si le Abverkaufswert de l'article sont plus grandes dans la ligne de rapport au cours du mois considéré astérisque position qui correspond 100. Sinon, nous indiquons à la place de l'astérisque de l'indication à O.

Si donc pour un article dans le mois le bit-map est indiqué à 200.804 "OXXOO, cela signifie que cet article avait l'Abverkaufswerte que dans les mois à 200803 et 200802 plus largement 100. Selon la définition de fixer des tâches d'un tel article n'aurait pas grande demande dans le mois 200,804. «Seule la combinaison des articles et des mois correspondent à la grande demande, pour lequel le bit-map est calculé.

Et voici la définition de la Metriks est bit-vente Carte> 100 dans la charge de 5 mois:

Metric condition

La dimensionnalité et de la Konditionalität Metrik ne sont pas modifiés. Seule la transformation "5 Mois de charge» est attribué le Metrik.

La formule de la Metrik se présente comme suit:

ApplyAgg ( "max (IIF ((# 0 = 0 et # 1> 100), 'X', 'O')) & Max (IIF ((# 0 = 1 et n ° 1> 100), 'X', ' O ')) & Max (IIF ((# 0 = 2 et # 1> 100),' X ',' O ')) & Max (IIF ((# 0 = 3 et # 1> 100),' X ', 'O')) & Max (IIF ((# 0 = 4 et # 1> 100), 'X', 'O'))"; [mois Diff] @ ID; [Unités vendues])

En raison de la fonction ApplyAgg on doit entrer dans la logique de la syntaxe Visual Basic (IIF pour l'examen et konditionale & pour le Konkatenierung). Probablement il devrait fonctionner sans toutefois également ApplyAgg fonction, avec les fonctions IF et MicroStrategy Concat. Façon logique devrait générer MicroStrategy cependant dans ce cas d'une requête très similaires.

Voici copie d'écran d'un rapport, qui utilise le bit de Metric-vente Carte> 100 dans la charge de 5 mois:

Final Report

L'article original en langue allemande peut être lue ici.

Solution pour les pas en mesure d'ajouter des tables dans l'entrepôt de catalogue

Numéro: Impossible d'ajouter les tables / vues sur le schéma dans l'entrepôt de catalogue

Erreur: 'Erreur ajoutant Table (s) pour le schéma. Cette clé est déjà associée à un élément de cette collection '

Solution dans MSTR 9:

1) Ouvrez «architecte»,

2) Droit cliquez sur la table table>

3) Ajouter au projet

4) une fois sa valeur ajoutée, table de droite dans le volet gauche et mettre à jour la structure

5) Enregistrer et fermer (il vous sera demander à jour du schéma, si faire la même chose

6) Catalogue Warehouse Maintenant ouvert

7) Vous pouvez voir la table / vue ajouté au schéma

Object Tracking Tool - avec quelques mises à jour

Après le long intervalle annonce 'Object Tracking Tool "avec quelques mises à jour.

1) L'outil testé dans le système où je-Server est installé (pas eu la chance de tester sans I-Server)

2) Testé sous XP, 2003, Vista, 7

3) Pour les essais utilisant Tutorial; l'ID d'objet pour certains objets mai ressemble même ... mais en réalité il ya une différence entre chaque numéro d'ID. Ne présumez pas que son répéter le même ID.

4) Toute suggestions / commentaires sont les bienvenus

Note: Bientôt, l'outil sera intégré à un autre outil également.

Téléchargez l'outil ici.

Note: Cette application est fourni "tel quel" et je décline toute garantie, expresse ou implicite, quant à tous les articles fournis, y compris toute garantie de qualité marchande, d'adéquation à un usage particulier, d'exactitude, d'intégration de systèmes, le titre, de qualité satisfaisante et non-contrefaçon. Je ne garantissent pas que l'utilisation des articles fournis ou toute partie de celle-ci sera ininterrompu ou exempt d'erreurs, ou que le matériel fourni ou toute partie de celle-ci réponde à des besoins ou une exigence de licence.

Interesting question des métadonnées

En MSTR 9, il est une nouvelle fonctionnalité appelée multisources où l'utilisateur peut connecter plusieurs instance de base.

Nous avons utilisé le même modèle et en raison de la nouvelle licence, nous sommes obligés de revenir à un instance de base unique. Nous avons donc fait tous instance de base de la même connexion ODBC (logiquement sa seule connexion DB)

Numéro: Même si toutes les instance de base de pointage à même ODBC, MSTR considérant que, comme instance de base multiples. Ainsi, lorsque des utilisateurs sans licence multisources vous connecter à la CMT et essayez d'exécuter un rapport, il envoie une erreur en disant que «ce n'est exige multisources licence '. Chose intéressante est, les tableaux de ce rapport proviennent d'instance de base unique.

Solution: Il est devenu enjeu crucial au cours de SIT en raison de changements de licence client ... blah .... Bla.

Pris peu de risque d'option et aussi que la seule solution ... Changing DB instance pour tous les attributs dans des tables de métadonnées. (Autre option, de modifier tous les attributs et modifier le tableau montrant par exemple DB seule tâche qui est énorme - [400 attributs].

Fait quelques analyses sur des tables MD, relations, etc ... J'ai changé l'instance de base tous les 32 bit ID à instance unique DB 32 bits ID (nécessité d'être très prudent tout en supprimant les lignes, changer les valeurs de colonne dans la DB sur les métadonnées.

Je continue à faire de la documentation sur l'évolution instance de base dans des métadonnées directement et avec une telle planification, document ou nouvel outil pour «rechercher et remplacer objet dans toute définition".

Si quelqu'un venu traverser ce genre de questions comme «ID de l'objet ne peut être trouvé» et également des questions comme SCANMD, DOCTEUR MD pas réussi à résoudre, va tenter de vous aider à fixer les mêmes.

Va bientôt publier le document et un outil pour la même ... ...