Ssas

SSAS - 以哪種方式訂購屬性?

  • May 18, 2017

我們的 SSAS 多維數據集有一個日期維度,對於 DayName 字元串成員,它按字母順序顯示,而不是按時間順序顯示。我添加了一個 DayOfWeek 整數 1-7 用於排序。我有兩種選擇來實現這一點,不確定兩者的優缺點。

  1. 使 DayName 屬性可見,並將 DayOfWeek 用作 OrderBYAttribute
  2. 使 DayOfWeek 屬性可見,並使用 DayName 作為 NameColumn

像這樣設置時,屬性在功能上是相同的。我傾向於#2,因為它是一個整數。

你的術語有點錯誤,這使得你很難說出你的 2 個選項到底是什麼意思,但你應該使用OrderByAttribute(我認為你的意思是選項 1)。OrderByAttribute正是為了用於此目的,通過鍵或值以外的其他方式對屬性進行排序。

如果通過選項 2,您的意思是您使用DayOfWeek列創建屬性(本質上是使用 a ofKeyColumn創建屬性DayOfWeek)然後NameColumnDayName.

KeyAttribute應該用於定義哪些成員是唯一的,並且應該NameColumn用於定義您希望向使用者顯示的內容。這些屬性中的每一個都有自己的用途,您應該這樣使用它們。

當您實際上需要該屬性來解決重複問題等問題時,濫用KeyColumn定義訂單會給您帶來麻煩。

文件的一些摘錄:

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

NameColumn 標識提供向使用者顯示的屬性名稱的列,而不是該屬性的鍵列中的值。當屬性成員的鍵列值不明確或對使用者無用時,或者當鍵列基於復合鍵時,使用此列。NameColumn 屬性不用於父子層次結構;相反,子成員的 NameColumn 屬性用作父子層次結構中的成員名稱。

OrderBy 描述如何對屬性層次結構中包含的成員進行排序。預設值為 Name,它指定屬性成員的排序基於 NameColumn 屬性的值(如果有)。否則,成員按鍵列的值排序。可用選項如下:

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