修改 Date 維度

在這個主題的工作中,您會建立一個使用者定義階層,以及變更針對 [日期]、[月]、[日曆季] 和 [日曆半年] 屬性所顯示的成員名稱。此外,您也會定義屬性的複合索引鍵、控制維度成員的排序次序,以及定義屬性關聯性。

加入具名計算

具名計算是以導出資料行表示的 SQL 運算式,您可以將它加入資料來源檢視的資料表中。這個運算式以資料表的資料行呈現及運作。具名計算可讓您延伸資料來源檢視中現有資料表的關聯式結構描述,而不必修改基礎資料來源中的資料表。如需詳細資訊,請參閱<在資料來源檢視中定義具名計算 (Analysis Services)>。

加入具名計算

  1. 在 [方案總管] 的 [資料來源檢視] 資料夾中,按兩下 Adventure Works DW 資料來源檢視,即可開啟此檢視。

  2. [資料表] 窗格中,以滑鼠右鍵按一下 [日期],然後按一下 [新增具名計算]

  3. [建立具名計算] 對話方塊中,於 [資料行名稱] 方塊中輸入 SimpleDate,然後在 [運算式] 方塊中輸入下列 CASE 陳述式:

    DATENAME(mm, FullDateAlternateKey) + ' ' +
    DATENAME(dd, FullDateAlternateKey) + ', ' +
    DATENAME(yy, FullDateAlternateKey)
    

    這個 CASE 陳述式會從 FullDateAlternateKey 資料行中擷取年份、月份和日期等值。您將使用這個新的資料行當做 FullDateAlternateKey 屬性的顯示名稱。

  4. 按一下 [確定],然後展開 [資料表] 窗格中的 [日期]

    [SimpleDate] 具名計算會出現在 Customer 資料表的資料行清單中,並以圖示表示它是具名計算。

  5. 在 [檔案] 功能表上,按一下 [全部儲存]

  6. [資料表] 窗格中,以滑鼠右鍵按一下 [日期],然後選取 [瀏覽資料]

  7. 檢閱 [瀏覽 Customer 資料表] 檢視中的最後一個資料行。

    請注意,[SimpleDate] 資料行出現在資料來源檢視中時,可正確串連基礎資料來源中幾個資料行的資料,而不會修改原始資料來源。

  8. 關閉 [瀏覽 Customer 資料表] 檢視。

針對成員名稱使用具名計算

在資料來源檢視中建立具名計算之後,您就可以使用此具名計算當做屬性 (Attribute) 的屬性 (Property)。

針對成員名稱使用具名計算

  1. 針對 Business Intelligence Development Studio 中的 [日期] 維度,開啟 [維度設計師]。若要這樣做,請在 [方案總管][維度] 節點中,按兩下 [日期] 維度。

  2. [維度結構] 索引標籤的 [屬性] 窗格中,按一下 [日期索引鍵] 屬性。

  3. 開啟 [屬性] 視窗,然後按一下標題列上的 [自動隱藏] 按鈕,如此它就會保持開啟狀態。

  4. [NameColumn] 屬性欄位中按一下,然後按一下省略符號 () 按鈕,即可開啟 [名稱資料行] 對話方塊。

  5. 選取 [來源資料行] 清單中的 [SimpleDate],然後按一下 [確定]

  6. 在 [檔案] 功能表上,按一下 [全部儲存]

建立階層

您可以將屬性從 [屬性] 窗格拖曳到 [階層] 窗格,藉以建立新的階層。

建立階層

  1. [日期] 維度的 [維度設計師] 中,將 [日曆年] 屬性從 [屬性] 窗格拖曳到 [階層] 窗格中。

  2. [日曆半年] 屬性從 [屬性] 窗格拖曳到 [階層] 窗格的 [<新層級>] 資料格中 (位於 [日曆年] 層級底下)。

  3. [日曆季] 屬性從 [屬性] 窗格拖曳到 [階層] 窗格的 [<新層級>] 資料格中 (位於 [日曆半年] 層級底下)。

  4. [英文月份] 屬性從 [屬性] 窗格拖曳到 [階層] 窗格的 [<新層級>] 資料格中 (位於 [日曆季] 層級底下)。

  5. [日期索引鍵] 屬性從 [屬性] 窗格拖曳到 [階層] 窗格的 [<新層級>] 資料格中 (位於 [英文月份] 層級底下)。

  6. [階層] 窗格中,以滑鼠右鍵按一下 [階層] 階層的標題列、選取 [重新命名],然後輸入日曆日期。

  7. [日曆日期] 階層中,將 [英文月份] 層級重新命名為日曆月,並將 [日期索引鍵] 層級重新命名為日期。

  8. [屬性] 窗格中刪除 [FullDateAlternateKey] 屬性,因為您將不會再使用它。

  9. 在 [檔案] 功能表上,按一下 [全部儲存]

定義屬性關聯性

如果基礎資料支援屬性關聯性,您就應該定義屬性之間的屬性關聯性。定義屬性關聯性可加快維度、資料分割和查詢處理的速度。

定義屬性關聯性

  1. [日期] 維度的 [維度設計師] 中,按一下 [屬性關聯性] 索引標籤。

  2. 在圖表中,以滑鼠右鍵按一下 [英文月份] 屬性,然後選取 [新增屬性關聯性]

  3. [建立屬性關聯性] 對話方塊中,[來源屬性][英文月份]。將 [相關屬性] 設定為 [日曆季]

  4. [關聯性類型] 清單中,將關聯性類型設定為 [固定]

    此關聯性類型是 [固定],因為成員之間的關聯性不會隨著時間而變更。

  5. 按一下 [確定]。

  6. 在圖表中,以滑鼠右鍵按一下 [日曆季] 屬性,然後選取 [新增屬性關聯性]

  7. [建立屬性關聯性] 對話方塊中,[來源屬性][日曆季]。將 [相關屬性] 設定為 [日曆半年]

  8. [關聯性類型] 清單中,將關聯性類型設定為 [固定]

  9. 按一下 [確定]。

  10. 在圖表中,以滑鼠右鍵按一下 [日曆半年] 屬性,然後選取 [新增屬性關聯性]

  11. [建立屬性關聯性] 對話方塊中,[來源屬性][日曆半年]。將 [相關屬性] 設定為 [日曆年]

  12. [關聯性類型] 清單中,將關聯性類型設定為 [固定]

  13. 按一下 [確定]。

  14. 在 [檔案] 功能表上,按一下 [全部儲存]

提供唯一的維度成員名稱

在這項工作中,您將建立 [EnglishMonthName][CalendarQuarter][CalendarSemester] 屬性所使用的使用者易記名稱資料行。

提供唯一的維度成員名稱

  1. 在 [方案總管] 的 [資料來源檢視] 資料夾中,按兩下 Adventure Works DW 資料來源檢視,即可切換至此檢視。

  2. [資料表] 窗格中,以滑鼠右鍵按一下 [日期],然後按一下 [新增具名計算]

  3. [建立具名計算] 對話方塊中,於 [資料行名稱] 方塊中輸入 MonthName,然後在 [運算式] 方塊中輸入下列陳述式:

    EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)
    

    這個陳述式會將資料表中的每一個月的月份和年份串連成新的資料行。

  4. 按一下 [確定]

  5. [資料表] 窗格中,以滑鼠右鍵按一下 [日期],然後按一下 [新增具名計算]

  6. [建立具名計算] 對話方塊中,於 [資料行名稱] 方塊中輸入 CalendarQuarterDesc,再於 [運算式] 方塊中輸入下列 SQL 指令碼:

    'Q' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'CY ' +
    CONVERT(CHAR (4), CalendarYear)
    

    這個 SQL 指令碼會將資料表中每一季的日曆季和年份串連成新的資料行。

  7. 按一下 [確定]

  8. [資料表] 窗格中,以滑鼠右鍵按一下 [日期],然後按一下 [新增具名計算]

  9. [建立具名計算] 對話方塊中,於 [資料行名稱] 方塊中輸入 CalendarSemesterDesc,再於 [運算式] 方塊中輸入下列 SQL 指令碼:

    CASE
    WHEN CalendarSemester = 1 THEN 'H1' + ' ' + 'CY' + ' ' 
           + CONVERT(CHAR(4), CalendarYear)
    ELSE
    'H2' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear)
    END
    

    這個 SQL 指令碼會將資料表中每半年度的日曆半年度和年份串連成新的資料行。

  10. 按一下 [確定]

  11. [檔案] 功能表上,按一下 [全部儲存]

定義複合 KeyColumns 並設定名稱資料行

[KeyColumns] 屬性 (Property) 包含代表屬性 (Attribute) 之索引鍵的資料行。在這項工作中,您將會定義複合 [KeyColumns]

針對 [英文月份] 屬性定義複合 KeyColumns

  1. 針對 [日期] 維度開啟 [維度結構] 索引標籤。

  2. [屬性] 窗格中,按一下 [英文月份] 屬性。

  3. [屬性] 視窗的 [KeyColumns] 欄位中按一下,然後按一下瀏覽 (...) 按鈕。

  4. [索引鍵資料行] 對話方塊的 [可用的資料行] 清單中,選取 [CalendarYear] 資料行,然後按一下 [>] 按鈕。

  5. [EnglishMonthName][CalendarYear] 資料行現在會顯示在 [索引鍵資料行] 清單中。

  6. 按一下 [確定]

  7. 若要設定 [EnglishMonthName] 屬性 (Attribute) 的 [NameColumn] 屬性 (Property),請在 [屬性] 視窗的 [NameColumn] 欄位中按一下,然後按一下瀏覽 (...) 按鈕。

  8. [名稱資料行] 對話方塊的 [來源資料行] 清單中,選取 [MonthName],然後按一下 [確定]

  9. 在 [檔案] 功能表上,按一下 [全部儲存]

針對 [日曆季] 屬性定義複合 KeyColumns

  1. [屬性] 窗格中,按一下 [日曆季] 屬性。

  2. [屬性] 視窗的 [KeyColumns] 欄位中按一下,然後按一下瀏覽 (...) 按鈕。

  3. [索引鍵資料行] 對話方塊的 [可用的資料行] 清單中,選取 [CalendarYear] 資料行,然後按一下 [>] 按鈕。

    [CalendarQuarter][CalendarYear] 資料行現在會顯示在 [索引鍵資料行] 清單中。

  4. 按一下 [確定]

  5. 若要設定 [日曆季] 屬性 (Attribute) 的 [NameColumn] 屬性 (Property),請在 [屬性] 視窗的 [NameColumn] 欄位中按一下,然後按一下瀏覽 (...) 按鈕。

  6. [名稱資料行] 對話方塊的 [來源資料行] 清單中,選取 [CalendarQuarterDesc],然後按一下 [確定]

  7. 在 [檔案] 功能表上,按一下 [全部儲存]

針對 [日曆半年] 屬性定義複合 KeyColumns

  1. [屬性] 窗格中,按一下 [日曆半年] 屬性。

  2. [屬性] 視窗的 [KeyColumns] 欄位中按一下,然後按一下瀏覽 (...) 按鈕。

  3. [索引鍵資料行] 對話方塊的 [可用的資料行] 清單中,選取 [CalendarYear] 資料行,然後按一下 [>] 按鈕。

    [CalendarSemester][CalendarYear] 資料行現在會顯示在 [索引鍵資料行] 清單中。

  4. 按一下 [確定]

  5. 若要設定 [日曆半年] 屬性 (Attribute) 的 [NameColumn] 屬性 (Property),請在 [屬性] 視窗的 [NameColumn] 欄位中按一下,然後按一下瀏覽 (...) 按鈕。

  6. [名稱資料行] 對話方塊的 [來源資料行] 清單中,選取 [CalendarSemesterDesc],然後按一下 [確定]

  7. 在 [檔案] 功能表上,按一下 [全部儲存]

部署和檢視變更

在變更屬性和階層之後,您必須部署變更及重新處理相關物件,然後才可以檢視變更。

部署和檢視變更

  1. 在 BI Development Studio 的 [建立] 功能表上,按一下 [部署 Analysis Services 教學課程]

  2. 當您收到 [已成功地完成部署] 訊息之後,請針對 [日期] 維度按一下 [維度設計師][瀏覽器] 索引標籤,然後按一下設計師工具列上的 [重新連接] 圖示。

  3. [階層] 清單中,選取 [日曆季]。檢閱 [日曆季] 屬性階層中的成員。

    請注意,[日曆季] 屬性階層的成員名稱更加易懂易記,因為您建立了要當做名稱使用的具名計算。雖然成員現在已經存在於每一年每一季的 [日曆季] 屬性階層中,但那些成員並未按照時間順序排列,而是先按季再按年排序。在這個主題的下一項工作中,您會修改先按季再按年排序這個屬性階層成員的行為。

  4. 檢閱 [英文月份][日曆半年] 屬性階層的成員。

    請注意,這些階層的成員也未按照時間順序排列,而是分別按月或按半年度再按年來排序。在這個主題的下一項工作中,您會修改這個行為來變更這種排序順序。

修改複合索引鍵成員順序來變更排序順序

在這項工作中,您將會透過變更組成複合索引鍵之索引鍵的順序,變更排序次序。

修改複合索引鍵成員順序

  1. 針對 [日期] 維度選取 [維度設計師] 的 [維度結構] 索引標籤,然後在 [屬性] 窗格中選取 [日曆半年]

  2. 在 [屬性] 視窗中,檢閱 [OrderBy] 屬性的值。它會設定為 [索引鍵]

    [日曆半年] 屬性階層的成員會按照其索引鍵值進行排序。利用複合索引鍵,成員索引鍵的排序是先依據第一個成員索引鍵的值,再依據第二個成員索引鍵的值。換言之,[日曆半年] 屬性階層的成員是先按半年度再按年度進行排序。

  3. 在 [屬性] 視窗中,按一下省略符號按鈕 ([...]) 來變更 [KeyColumns] 屬性值。

  4. [索引鍵資料行] 對話方塊的 [索引鍵資料行] 清單中,確認已選取 [CalendarSemester],然後按一下向下箭號,讓這個複合索引鍵之成員的順序相反。按一下 [確定]

    屬性階層的成員現在變成先按年再按半年度排序。

  5. [屬性] 窗格中選取 [日曆季],然後針對 [屬性] 視窗的 [KeyColumns] 屬性,按一下省略符號按鈕 (...)。

  6. 在 <ui>[索引鍵資料行]</ui> 對話方塊的 <ui>[索引鍵資料行]</ui> 清單中,確認已選取 <ui>[CalendarQuarter]</ui>,然後按一下向下箭號,讓這個複合索引鍵之成員的順序相反。按一下 [確定]

    屬性階層的成員現在變成先按年再按季排序。

  7. [屬性] 窗格中選取 [英文月份],然後針對 [屬性] 視窗的 <ui>[KeyColumns]</ui> 屬性,按一下省略符號按鈕 (<ui>...</ui>)。

  8. [索引鍵資料行] 對話方塊的 [索引鍵資料行] 清單中,確認已選取 [EnglishMonthName],然後按一下向下箭號,讓這個複合索引鍵之成員的順序相反。按一下 [確定]

    屬性階層的成員現在變成先按年再按月排序。

  9. 在 BI Development Studio 的 [建立] 功能表上,按一下 [部署 Analysis Services Tutorial]。順利完成部署之後,在 [日期] 維度的維度設計師中按一下 [瀏覽器] 索引標籤。

  10. [瀏覽器] 索引標籤的工具列上,按一下 [重新連接] 圖示。

  11. 檢閱 [日曆季][日曆半年] 屬性階層的成員。

    請注意,這些階層的成員現在已按照時間順序排列了,它們是先按年再按季或半年度來排序。

  12. 檢閱 [英文月份] 屬性階層的成員。

    請注意,現在階層的成員會先依年排序,然後依月按字母順序排序。這是因為依據關聯式資料庫中的 nvarchar 資料類型,在資料來源檢視中 EnglishCalendarMonth 資料行的資料類型為字串資料行。如需有關如何讓每年的月份按時間順序排序的詳細資訊,請參閱<依次要屬性來排序屬性成員>。

本課程的下一項工作

瀏覽已部署的 Cube

請參閱

概念