2016-07-13 2 views
0

J'ai deux dimensions, disons "Dimension1" et "Dimension2" Ces deux dimensions doivent être liées, comme Dimension1 peut avoir un ou plusieurs enregistrements dans Dimension2.Relation de deux dimensions dans le cube SSAS

Pour raconter, j'ai une table intermédiaire, dit "Dimension12"

valeurs de l'échantillon sont comme ci-dessous.

Dimension1

Column 1 
A 
B 
C 

Dimension2

Column2 
X 
Y 
Z 

Dimension12

Column1 Column2 
A  X 
A  Y 
B  X 
C  Y 
C  Z 

Dans DSV je racontais ces 2 tables à l'aide de la table « Dimension12 ». Création de deux nouvelles dimensions, Dimension1 et Dimension2. Cube déployé et traité. Maintenant, quand je demande, j'ai utilisé Colonne1 de Dimension1 et Column2 de Dimension2, cela ne me donne pas le résultat requis, je veux voir X et Y sous A, à la place, il me donne tout comme X, Y, Z sous A et X, Y, Z sous B et X, Y, Z sous C. Relationnelle entre la dimension ne se produit pas. Je ne veux pas qu'ils se racontent à travers les faits.

Pouvez-vous s'il vous plaît aider ce qui me manque ici. Ou est-il possible de le faire.

+0

Je me demande pourquoi vous n'avez pas construit une hiérarchie avec 2 niveaux sous une seule dimension. – ebayindir

Répondre

0

Problème avec Dimension12.

Il devrait être généré à l'aide jointure externe si (il y a une clé de jointure.)

Sinon, il doit être créé comme une jointure croisée de Dimension1 et Dimension 2 dans le cas où il n'y a pas de relation.

vous Dimension12 devriez avoir des données ci-dessous

Column1 Column2 
A  x 
B  x 
C  x 
A  y 
B  y 
C  y 

Modifier après commentaire.

Dans le cas où nous donot avoir une relation à Dimension1 et Dimension2

étape 1> Créer une table Dimension12

Create table Dimension12 
(id int identity (1,1),-- as i would required a surrogate key for referencing in fact. 

Column1 varchar(50), 

Column2 varchar(50)) 


    insert into Dimension12 (Column1,Column2) 
    select d1.Column1,d2.Column2 from Dimension1 d1,Dimension2 d2 

étape 2> Une fois remplir les données

insert into Dimension12 (Column1,Column2) 
select d1.Column1,d2.Column2 from Dimension1 d1,Dimension2 d2 

étape 3> faire une mise à jour Einsert ETL pour peupler Dimension12 tbale.

étape 4> utilisez Dimension12 (table ou vue en haut de ce tableau) dans DSV.

Maintenant vous êtes prêt à partir ..

+0

Dimension12 possède les données comme vous l'avez dit.Mais je n'ai pas ce que vous disiez à propos de la jointure externe complète, DSV a une relation, Primaire "Dimension1" Foreign "Dimension12" et Primaire "Dimension2" Foreign "Dimension12" – Harsha

+0

si vous n'avez aucune relation dans Dimension1 et Dimension1 dans dans ce cas, rejoignez/JOINTE CARTESIAN ie sélectionnez d1.Column1, d2.Column2 de Dimension1 d1, Dimension2 d2 .. je vais ajouter plus de détails dans la réponse ... –

+0

Merci, mais je ne sais pas comment cela résout mon problème. Je ne veux pas de données sur les produits catersiens. Dimension12 a déjà une relation entre dimension 1 et dimension2, si dans ce cas je ne vois pas pourquoi j'ai besoin d'insérer à nouveau le produit catesian. Probablement je n'ai pas eu. Le problème est que je l'ai modélisé et toujours la relation ne se produit pas. J'utilise dimension12 seulement pour rapporter. Si j'utilise Colum1 de Dimension1 et Column2 de Dimension2 alors il devrait montrer la relation et ceci ne se produit pas. – Harsha