具有父子层次结构的事实与维度之间的多对多关系

时间:2013-05-26 11:24:04

标签: many-to-many ssas olap

我有以下业务场景。我有一个事实表和一些事实。还有一个具有父子层次结构的维度类别。在一个Category维度中打包了许多不同的层次结构。我的意思是有很多不同类型的分类。 Fact和Category Dimension之间也存在多对多关系。事实可以绑定到当时的多个类别。 我现在已经有大约200个层次结构,可能会多一点,但我不希望在维度表中获得超过100k-200k的行。

我已将类别维度添加两次到多维数据集,以便能够在列和行上具有不同的层次结构。我的问题是,我确实看到了不同层次结构之间的交叉值。 如果我在行上过滤一个层次结构而在列上过滤另一个层次结构,我什么也得不到

我认为我的问题在某种程度上涉及多对多革命中的多个选择范例,但我没有找到它的样本。

我正在使用SSAS 2012 Multidimensional。

我也感兴趣,如果有可能像表格中的那样:))

这是数据库架构

CREATE TABLE [dbo]。[cat](     [cat_id] [int] NOT NULL,     [parent_cat_id] [int] NULL,     [name] nchar NULL,  CONSTRAINT [PK_cat] PRIMARY KEY CLUSTERED([cat_id] ASC)

创建表[dbo]。[事实](     [fact_id] [int] NOT NULL,     [name] nchar NULL,     [value] [int] NULL,  CONSTRAINT [PK_Fact] PRIMARY KEY CLUSTERED([fact_id] ASC)

CREATE TABLE [dbo]。[fact_cat](     [fact_id] [int] NULL,     [cat_id] [int] NULL,     [id] [int] NOT NULL,  CONSTRAINT [PK_fact_cat] PRIMARY KEY CLUSTERED([id] ASC) GO

ALTER TABLE [dbo]。[fact_cat] ADD CONSTRAINT [fk_fact_cat_cat] FOREIGN KEY([cat_id]) 参考文献[dbo]。[cat]([cat_id]) GO

ALTER TABLE [dbo]。[fact_cat] ADD CONSTRAINT [fk_fact_cat_fact] FOREIGN KEY([fact_id]) 参考文献[dbo]。[事实]([fact_id]) GO

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我通过在多维数据集中处理[dbo]。[fact_cat]表来解决这个问题。为此,必须添加适当的命名查询。我已将此虚拟副本表命名为fact_cat2。之后我为它创造了一个混乱。 我已根据多对多革命的调查实例实施了所有这些 http://www.sqlbi.com/articles/many2many/