2011-07-07 7 views
1

J'ai une table comme ceci:autojointure SSAS

PersonId Job City ParentId 
--------- ---- ----- -------- 
101   A  C1  105 
102   B  C2  101 
103   A  C1  102 

Alors je besoin d'obtenir les règles d'association entre le travail de la personne et la ville de parent. J'ai utilisé l'auto-référencement et défini des tables de cas/imbriquées, mais à la suite du graphique de dépendance, il n'y a pas de différence entre le travail de la personne ou la ville et le travail ou la ville des parents!

Quelle est la meilleure solution pour ce problème dans le projet SSAS?

Répondre

0

Je ne sais pas exactement ce que vous essayez de acheive, mais l'instruction SQL suivante serait un bon point de départ:

select c.PersonId , p.City 
from ptable c, ptable p 
where c.ParentId = p.PersonId 
+0

merci, mais j'ai besoin d'une solution pour les règles d'association des services d'analyse SQL Server pas Linq quey. – ARZ

1

SSAS Hiérarchies devrait résoudre votre problème. Cependant, il est difficile de dire exactement comment les utiliser sans en savoir plus sur votre situation particulière.

1

J'ai rencontré un besoin similaire dans mon propre travail. Jusqu'à présent, j'ai seulement étudié modèles tabulaires SQL Server Analysis Services. Je vais mettre à jour cette réponse avec plus d'informations une fois que j'ai fini de regarder dans les modèles multidimensionnels.

Par Relationships (SSAS Tabular), SSAS Les modèles tabulaires ne prennent pas en charge les auto-jointures (voir ci-dessous pour la citation correspondante). Ce que vous devez faire est de séparer le groupe d'éléments parents et chaque niveau de leurs éléments enfants en tant que tables modèles séparées. Une fois que vous avez les tables de modèles, vous pouvez utiliser la vue de diagramme pour dessiner les relations pertinentes.

Autojointures et boucles

Autojointures ne sont pas autorisés dans les tableaux modèles de tableaux. Une auto-jointure est une relation récursive entre une table et elle-même. Les auto-jointures sont souvent utilisées pour définir des hiérarchies parent-enfant. Par exemple, vous pouvez joindre une table Employés à lui-même pour produire une hiérarchie qui montre la chaîne de gestion dans une entreprise.

Le concepteur de modèle n'autorise pas la création de boucles parmi les relations dans un modèle. En d'autres termes, l'ensemble de relations suivant est interdit. +

le tableau 1, colonne A du tableau 2, colonne f

Tableau 2, colonne f du tableau 3, colonne n

tableau 3, colonne n pour le tableau 1, colonne A

Si vous essayez de créer une relation qui entraînerait la création d'une boucle , une erreur est générée.