Самостоятельное присоединение в SSAS - PullRequest
1 голос
/ 07 июля 2011

У меня есть такая таблица:

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

Тогда мне нужно получить правила ассоциации между Работа человека и город родителей .

Я использовал самоссылку и определял таблицы case / nested, но в результате графика зависимости нет разницы между работой человека или городом и работой или городом родителя!

Как лучше всего решить эту проблему в проекте SSAS?

Ответы [ 3 ]

1 голос
/ 09 января 2015

SSAS Иерархии должны решить вашу проблему.Однако сложно точно сказать, как их использовать, не зная больше о вашей конкретной ситуации.

1 голос
/ 15 августа 2017

Я столкнулся с аналогичной потребностью в моей собственной работе.До сих пор я исследовал только табличные модели служб анализа SQL Server.Я дополню этот ответ дополнительной информацией, как только закончу анализ многомерных моделей.

На Отношения (таблица SSAS) , модели таблицы SSAS не поддерживают самостоятельные объединения (см. Ниже дляактуальная цитата).В конечном итоге вам нужно разделить группу родительских элементов и каждый уровень их дочерних элементов на отдельные таблицы моделей.Если у вас есть таблицы моделей, вы можете использовать представление схемы для рисования соответствующих связей.

Самостоятельные объединения и циклы

Самостоятельные объединения не являютсяразрешено в табличных модельных таблицах.Самостоятельное соединение - это рекурсивные отношения между таблицей и самим собой.Самостоятельные объединения часто используются для определения иерархий родитель-потомок.Например, вы можете присоединить таблицу Employees к себе, чтобы создать иерархию, которая показывает цепочку управления в бизнесе.

Конструктор моделей не позволяет создавать циклы между отношениями в модели.Другими словами, следующий набор отношений запрещен.+

Таблица 1, столбец a к таблице 2, столбец f

Таблица 2, столбец f к таблице 3, столбец n

Таблица 3, столбец n к таблице 1,столбец a

Если вы попытаетесь создать отношение, которое приведет к созданию цикла, будет сгенерирована ошибка.

0 голосов
/ 07 июля 2011

Не совсем точно, что вы пытаетесь достичь, но следующий SQL будет хорошей отправной точкой:

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