2015-06-18 75 views
0

我試圖實現的目標是在PowerPivot,ClientID和CSQName中有2個切片器。當一個客戶端ID只選擇那些與該客戶端ID現身CSQnames,反之亦然PowerPivot關係多對多

關係圖鏈接:https://goo.gl/photos/PnCZrnsXXTx3oFGh8

我有鏈接一個許多人在PowerPivot的許多關係的問題。我試圖建立的應用程序的簡短背景...

我想結合SQL數據庫(IDM)和Informix SQL數據庫(思科呼叫數據)。 IDM數據庫包括客戶數據和TBAS開放式案例數據。每個客戶端都有一個特定的ClientID。 Cisco數據庫包含呼叫詳細信息和CSQNames(隊列名稱)。存在多對多關係,例如,一個clientid可以有多個CSQname(clientid 3的CSQ名稱爲「A」和「B」)。另外一個csqname可以有多個clientids(csqname「Z」包括clientids「99」,「98」和「97」),因此我創建了一個innerjoin表來創建多對多的關係,名爲「Clients_CSQ」。試圖在「TBAS開放案例」和「呼叫詳細信息」中使用此內聯表。當我將此表用於我的過濾器時,PowerPivot指出不存在任何關係有沒有解決方案?如果這沒有意義請告訴我,我會盡量詳細說明,我已經準備好了很多帖子,但無法掌握如何讓DAX與計算函數進行多對多的關係工作,如果有人能夠解決這個問題,不勝感激。謝謝。

回答

0

這實際上取決於你想要報告的數據。 當您將兩個切片器添加到PowerPivot表中時,每個切片器中的可用選擇將受其他切片器IF中的選擇的影響,並且僅當該數據透視表的Values部分中的所有字段都依賴於這兩個切片機領域。

在你的情況下,也可以通過創建3倍的措施,使這項工作(作爲一個例子):

[Call Total]=SUM('TBAS Open Cases'[Case duration]) 
[Number of Calls]=COUNTA('Call Detail'[appname]) 
[Calls by Duration]=SUMX('Clients_CSQ',DIVIDE([Call Total],[Number of Calls])) 

將最後的與設置爲使用「分片數據透視表這3項措施Clients_IDM'[ic_client_id]和'CSQ名稱'[csqname]和「Hey Presto!」

前兩項措施非常直截了當。第三種方法是循環訪問這兩個切片器字段共有的唯一表中的每個條目(Clients_CSQ)並使用FACT表中的數據執行計算。我不知道我提出的[持續時間呼叫]措施是否對您的數據集有意義,但希望這個例子能幫助您達到您想要的解決方案。再次取決於你想要顯示的數據,這個度量是否返回垃圾並不重要,重要的是它將你的兩個數據集合在一起。

請記住,只要將任一事實表中的任何原始字段添加到此「統一數據透視表」,切片器之間的相互關係就會中斷。 !!!但!!!沒有什麼可阻止您將csqname切片器鏈接到同一工作表上的另一個數據透視表,該透視圖包含Call Detail表格中的字段,同樣將ic_client_id切片器鏈接到包含TBAS Open Cases數據的數據透視表。事實上,「統一數據透視表」可能與切片機位於不同的表格中,因此您只能看到您感興趣的兩組數據。

並忽略關於不存在關係的警告!