2012-07-05 3 views
0

Je suis juste revenir dans SSAS après avoir hérité d'un cube existant et je ne suis pas sûr de savoir comment procéder à ce scénario:Deux faits - Deux grains différents

Fait budgétaire:

  • Produit
  • client
  • Temps

Promo Fait: - produit - Client - Promotion - Heure

Je cherche à faire un rapport combinant des mesures du Groupe de mesures budgétaires et du Groupe de mesures promotionnelles. Essentiellement, j'essaie d'obtenir une liste de clients et de produits dont la valeur Promotion.Discount> .4. Cela signifie que je dois insérer la Dimension de promotion dans mon ensemble de données et que les choses commencent à devenir poilues.

Un rapport sur le client, le produit, l'identifiant promotionnel et Promo.Amount est de 1565 enregistrements. Un rapport sur client, produit et budget. Montant est de 31 enregistrements. Un rapport sur le client, le produit, l'identifiant promotionnel, le montant de la promotion et le budget.Amount est de 179 878 enregistrements! Vraiment ce que j'essaye d'accomplir (d'un point de vue de SQL) est de renvoyer une liste de clients et de produits où la valeur d'escompte de promotion est> .4 alors lier cela à un autre ensemble de données sur l'identification de client et l'identification de produit pour obtenir la valeur du budget. J'ai passé pas mal de temps à lire sur l'utilisation de la fonction Dimension, et rien ne semble y aider. Aucun conseil?!

Répondre

0

Si le cube est déjà en place et correctement construit, vous ne devriez rien changer dans l'utilisation de la dimension. Mais juste pour être sûr, quand vous regardez cette page, vous devriez voir apparaître un nom d'attribut dans chaque intersection de dimension avec le groupe de mesures correspondant. Selon votre description, seule l'intersection de Promotion et Budget doit apparaître sous la forme d'une cellule grise (vide).

Il semble que le problème soit de savoir comment écrire la requête MDX appropriée. Vous devriez être en mesure de produire la liste que vous voulez avec une requête similaire à celle-ci (en changeant les noms réels des dimensions et mesures le cas échéant):

with 
set CustomerProductList as 
Filter((Customer.Customer.Customer.Members, Product.Product.Product.Members, Promotion.Promotion.Promotion.Members), 
Val(Promotion.Promotion.CurrentMember.Name) > .4) 

select 
{Measures.BudgetAmount, Measures.PromotionAmount} on columns, 
CustomerProductList on rows 
from YourCube 
Questions connexes