1

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

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

我认为我的问题在某种程度上与多对多革命中的多项选择示例有关,但我还没有找到它的样本。

我正在使用 SSAS 2012 多维。

我也很感兴趣,如果有可能在表格中那样做 :))

这是数据库模式

CREATE TABLE [dbo].[cat]( [cat_id] [int] NOT NULL, [parent_cat_id] [int] NULL, [name] nchar NULL, 约束 [PK_cat] 主键集群 ([cat_id] ASC)

CREATE TABLE [dbo].[Fact]( [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, 约束 [PK_fact_cat] 主键集群 ([id] ASC) GO

ALTER TABLE [dbo].[fact_cat] 添加约束 [fk_fact_cat_cat] FOREIGN KEY([cat_id]) REFERENCES [dbo].[cat] ([cat_id]) GO

ALTER TABLE [dbo].[fact_cat] 添加约束 [fk_fact_cat_fact] FOREIGN KEY([fact_id]) 引用 [dbo].[Fact] ([fact_id]) GO

在此先感谢您的帮助!

4

1 回答 1

0

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

于 2013-06-02T15:02:18.763 回答