Sql-Server

瀏覽時 SSAS 層次結構重複

  • April 5, 2016

多維數據集中的維度給我們重複,處理多維數據集時沒有錯誤,但是當瀏覽多維數據集時,我們可以看到重複。

在我們的維度中有一個層次結構,層次結構是這樣建構的Country -- State -- Area

在數據庫中,維度數據如下所示。

+---------+------------+-----------+
| Country |   State    |  Subarea  |
+---------+------------+-----------+
| India   | Karnataka  | Bangalore |
| India   | Telangana  | Hyderabad |
+---------+------------+-----------+

現在,當使用 Country 屬性瀏覽多維數據集時,我們看到 country 下的 2 個成員為“India”,當針對該屬性選擇度量時,銷售額在這兩個值之間被打破。

我們可以做任何工作來避免這個問題嗎?

該行為取決於您的KeyColumns設置。

給定一個包含這 2 個命名查詢的多維數據集datasource view

城市:

SELECT        1 AS id, 'India' AS country, 'Calcutta' AS city
UNION
SELECT        2 AS id, 'India' AS country, 'Bangalore' AS city

銷售量:

SELECT        1 AS city, 5 AS salesamount
UNION
SELECT        2 AS city, 5 AS salesamount

基於城市的維度,連結到 sales.city->cities.id關係上的 Sales 表,如下所示,使用 id 列KeyColumns

在此處輸入圖像描述

結果是這樣的:

在此處輸入圖像描述

但是,如果我將KeyColumn屬性更改為該屬性country,如下所示:

在此處輸入圖像描述

結果是所有銷售額都在一個國家/地區報告:

在此處輸入圖像描述

我同意文件有點簡潔:

包含表示屬性鍵的一個或多個列,該鍵是屬性綁定到的數據源視圖中的基礎關係表中的列。除非為 NameColumn 屬性指定了值,否則每個成員的此列的值都會顯示給使用者。

您應該將其解釋為“鍵列中的每個不同值都有一個單獨的屬性成員,即使顯示的值相同”

但是請注意,更改鍵列可能需要您更改NameColumnOrderBy屬性。

此外,KeyColumns可以由多個列組成,充當唯一鍵,而不是像我的範例中的單個鍵。

有時,當現有報告更改現有結構的風險太大時,添加額外屬性可能是一個不錯的選擇。

引用自:https://dba.stackexchange.com/questions/133945