Excel和使用桥表的多值维度

我查询数据库数据库(关系数据库),使用桥表来build模多值维度。 我试图从Excel中查询它,但我得到错误的结果。

这是我有/做的:

数据仓库:基本上有用户,每个用户可以说一种或多种语言 – 多维度。 在下面的SQL中,会讲英语的Johnny和说英语,法语,西class牙语和意大利语的Cathleen。

create table dbo.Dimension_Languages( LanguageID int primary key ,LanguageName varchar(256) --,LanguageGradeComment varchar(max) ); go create table dbo.Dimension_LanguageBridge1( LanguageGroupID int primary key ); go create table dbo.Dimension_LanguageBridge2( LanguageGroupID int foreign key references dbo.Dimension_LanguageBridge1(LanguageGroupID) ,LanguageID int foreign key references dbo.Dimension_Languages(LanguageID) ); go create table dbo.Dimension_User( UserID int primary key ,UserName varchar(256) ); go create table dbo.Fact_User( UserID int foreign key references dbo.Dimension_User(UserID) ,LanguageGroupID int foreign key references dbo.Dimension_LanguageBridge1(LanguageGroupID) ); go insert into dbo.Dimension_Languages values(1, 'English'); insert into dbo.Dimension_Languages values(2, 'French'); insert into dbo.Dimension_Languages values(3, 'Spanish'); insert into dbo.Dimension_Languages values(4, 'Italian'); insert into dbo.Dimension_User values(1, 'Johnny'); insert into dbo.Dimension_LanguageBridge1 values(1); insert into dbo.Dimension_LanguageBridge2 values(1, 1); insert into dbo.Fact_User values(1, 1); insert into dbo.Dimension_User values(2, 'Cathleen'); insert into dbo.Dimension_LanguageBridge1 values(2); insert into dbo.Dimension_LanguageBridge2 values(2, 1); insert into dbo.Dimension_LanguageBridge2 values(2, 2); insert into dbo.Dimension_LanguageBridge2 values(2, 3); insert into dbo.Dimension_LanguageBridge2 values(2, 4); insert into dbo.Fact_User values(2, 2); 

在Excel 2013中,我select数据/从其他来源/从SQL Server / … /我select上面的所有表/和我select创build数据透视表。 我将UserName列添加到数据透视表行和LanguageName中筛选器。 我在filter中select法语,Excel显示Cathleen和Johnny,但Johnny不会说法语。 我只希望数据透视表只显示Cathleen,因为只有Cathleen说法语。

在这里输入图像说明

非常感谢

在我看来,数据透视表是以某种方式执行交叉连接,因为在语言和用户维度之间没有联系(Fk约束),链接在事实表中,而不是直接回答的提示,那就是我从你的问题中明白了,祝你好运。