使用SSIS将递归层次结构展平为维度

时间:2010-11-03 16:54:50

标签: sql sql-server ssis etl

我在关系数据库中有一个递归层次结构,这反映了团队及其在层次结构中的位置。

我希望将此层次结构扁平化为数据仓库的维度,它是一个SQL Server数据库,使用SSIS进行SSAS。

我有一张桌子,队伍:

teamid Teamname
1      Team 1
2      Team 2

表格teamhierarchymapping:

Teamid  heirarchyid
1       4
2       2

表格层次结构:

sequenceid  parentsequenceid  Name
1           null              root
2           1                 Level 1.1
3           1                 Level 1.2
4           3                 Level 1.2 1

给予

      Level 1.1 (Contains Team 2)
root <
      Level 1.2 <
                 Level 1.2 1 (Contains Team 1)

我想将其扁平化为:

Team Name   Level 1    Level 2    Level 3
Team 1      Root       Level 1.1  [None]
Team 2      Root       Level 1.2  Level 1.2 1

我尝试了各种令人讨厌的SQL来尝试将它们组合在一起,以及SSIS中的各种管道(我刚开始接受),而且我找不到将它组合在一起的解决方案。 / p>

有人可以帮忙吗?

(我认为编辑了样本数据的更正问题)

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您是否需要压缩层次结构?考虑SSAS中的父子层次结构维度类型,它处理可变深度层次结构,并允许扁平化层次结构不具备的额外功能/特征:

http://msdn.microsoft.com/en-us/library/ms174846.aspx

http://msdn.microsoft.com/en-us/library/ms174935.aspx