2014-05-10 29 views
1

我查詢使用橋表建模多值維的數據庫數據庫(關係數據庫)。我試圖從Excel中查詢它,但我得到錯誤的結果。Excel和使用橋表的多值維

這是我/做:

數據倉庫:基本上有用戶和每個用戶都可以講一個或更多的語言 - 多值維度。在下面的SQL中,會講英語的Johnny和講英語,法語,西班牙語和意大利語的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中,我選擇數據/從其他來源/從SQL Server/... /我選擇上面的所有表/和我選擇創建數據透視表。我將數據透視錶行和LanguageName中的UserName列添加到過濾器中。我在過濾器中選擇法語,Excel顯示Cathleen和Johnny,但Johnny不會說法語。我希望數據透視表只顯示Cathleen,因爲只有Cathleen講法語。

enter image description here

非常感謝

回答

0

在我看來,透視表將被以某種方式進行交叉連接,因爲有(.. FK約束)的語言和用戶規模之間沒有聯繫,鏈路處於事實表,這只是一個暗示,而不是直接的答案,這就是我從你的問題中所理解的,所以祝你好運。