共用方式為


修改日期維度

在本主題的工作中,您會建立使用者定義的階層,並變更針對 Date、Month、Calendar Quarter 和 Calendar Semester 屬性顯示的成員名稱。 您也可以定義屬性的複合索引鍵、控制維度成員的排序順序,以及定義屬性關聯性。

新增具名計算

您可以將具名計算新增至數據源檢視中的資料表,這是以匯出數據行表示的 SQL 運算式。 表達式會顯示並做為數據表中的資料欄。 具名計算可讓您擴充數據源檢視中現有數據表的關係架構,而不需修改基礎數據源中的數據表。 如需詳細資訊,請參閱 在數據源檢視中定義具名計算 (Analysis Services)

新增具名計算

  1. 若要開啟 Adventure Works DW 2012 數據源檢視,請在 [方案總管] 的 [ 數據源檢視 ] 資料夾中按兩下它。

  2. 數據表 窗格底部附近,右鍵單擊 Date,然後點擊 新增具名計算

  3. 在 [建立具名計算] 對話框中,輸入 SimpleDate [數據行名稱] 方塊,然後在 [DATENAME] 方塊中輸入或複製並貼上下列語句:

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

    語句 DATENAME 會從 FullDateAlternateKey 數據行擷取年、月和日值。 您將使用此新資料行作為 FullDateAlternateKey 屬性的顯示名稱。

  4. 按兩下 [確定],然後在 [資料表] 窗格中展開Date

    SimpleDate 名計算會出現在 Date 資料表的數據列清單中,並顯示圖示,指出它是具名計算。

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

  6. 在 [ 數據表] 窗格中,以滑鼠右鍵按兩下 Date,然後按下 [ 探索數據]。

  7. 滾動到右側以檢閱 探索日期數據表 檢視中的最後一個列。

    請注意,數據 SimpleDate 行會出現在數據源檢視中,正確串連基礎數據源中的數個數據行,而不需修改原始數據源。

  8. 關閉 [ 探索日期數據表 ] 檢視。

使用具名計算來處理成員名稱

在數據源檢視中建立具名計算之後,您可以將具名計算作為屬性的特性使用。

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

  1. 在 SQL Server Data Tools (SSDT) 中開啟日期維度的Dimension Designer。 若要這樣做,請按兩下 Date方案總管維度 節點中。

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

  3. 如果 [屬性] 視窗未開啟,請開啟 [屬性] 視窗,然後按下標題欄上的 [ 自動隱藏 ] 按鈕,讓它保持開啟狀態。

  4. 按兩下視窗底部附近的 NameColumn 屬性欄位,然後按下省略號瀏覽 (...) 按鈕以開啟 [ 名稱資料行 ] 對話方塊。

  5. 選取 SimpleDate源數據行 清單底部,然後點擊 確定

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

建立階層

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

若要建立階層

  1. 在維度設計師的 [維度Date結構] 索引標籤中,將 [日曆年] 屬性從 [屬性] 窗格拖動到 [階層] 窗格中。

  2. 學期屬性從屬性窗格拖曳到<新層級>數據格,中於階層窗格中,置於年度層級底下。

  3. 行事曆季 屬性從 屬性 窗格拖曳到 <新層級>的格子中,位於 階層 窗格的 日曆學期 層級底下。

  4. 英文月份名稱 屬性從 屬性 窗格拖曳到 <新層級>階層窗格的儲存格中,位於 行事曆季度 層級下方。

  5. [日期鍵] 屬性從 [屬性] 窗格拖曳至 <[層級窗格] 中的新層級>單元格,位於 [英文月份名稱] 層級下方。

  6. 在 [ 階層 ] 窗格中,以滑鼠右鍵按兩下 階層階層的 標題列,按兩下 [ 重新命名],然後輸入 Calendar Date

  7. 使用滑鼠右鍵開啟上下文選單,在Calendar Date階層中,將英文月份名稱層級重新命名為Calendar Month,然後將日期索引鍵層級重新命名為Date

  8. 從 [屬性] 窗格中刪除 [完整日期替代索引鍵] 屬性,因為您不會使用它。 在「刪除物件」確認視窗中點擊「確定」。

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

定義屬性關聯性

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

定義屬性之間的關聯性

  1. 維度設計師Date 維度中,點選 屬性關聯性 索引標籤。

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

  3. 在 [ 建立屬性關聯性] 對話框中, [來源屬性 ] 是 英文月份名稱。 將 [相關屬性 ] 設定為 [行事歷季]。

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

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

  5. 按一下 [確定]

  6. 在圖表中,以滑鼠右鍵按一下 [行事歷季] 屬性,然後按一下 [新增屬性關聯性]

  7. 建立屬性關聯性 對話框中,來源屬性日曆季度。 將 [相關屬性 ] 設定為 [日曆學期]。

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

  9. 按一下 [確定]

  10. 在圖表中,右鍵按一下 日曆學期 屬性,然後按一下 新增屬性關聯性

  11. 在 [ 建立屬性關聯性] 對話框中, [來源屬性 ] 是 [日曆學期]。 將 [相關屬性 ] 設定為 [行事曆年份]。

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

  13. 按一下 [確定]

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

提供唯一維度成員名稱

在這項工作中,您將建立使用者友好名稱欄位,供 EnglishMonthNameCalendarQuarterCalendarSemester 屬性使用。

提供唯一維度成員名稱

  1. 若要切換至 Adventure Works DW 2012 數據源檢視,請在 [方案總管] 的 [ 數據源檢視 ] 資料夾中按兩下它。

  2. 資料表 窗格中,以滑鼠右鍵點擊 Date,然後點擊 新增具名計算

  3. 在 [ 建立具名計算 ] 對話框中,輸入 MonthName [ 數據行名稱 ] 方塊,然後在 [ 表達式 ] 方塊中輸入或複製並貼上下列語句:

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

    語句會將數據表中每個月的月份和年份串連成新的數據列。

  4. 按一下 [確定]

  5. 數據表 窗格中,以滑鼠右鍵點擊 Date,然後點擊 新建具名計算

  6. 在 [建立具名計算] 對話框中,於 [數據行名稱] 方塊中輸入 CalendarQuarterDesc ,然後在 [表達式] 方塊中輸入或複製並貼上下列 SQL 腳本:

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

    此 SQL 腳本會將數據表中每個季的日曆季和年份串連到新的數據行。

  7. 按一下 [確定]

  8. 數據表 窗格中,按一下右鍵 Date,然後按一下 新命名計算

  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

為英文月份名稱屬性定義綜合關鍵欄位

  1. 開啟日期維度的維度結構索引標籤。

  2. 在 [ 屬性] 窗格中,按兩下 [英文月份名稱] 屬性。

  3. 在 [ 屬性] 視窗中,按兩下 [KeyColumns ] 字段,然後按兩下 [瀏覽] 按鈕

  4. 鍵欄位 對話方塊的 可用欄位 清單中,選取 CalendarYear 資料行,然後按下 > 按鈕。

  5. EnglishMonthNameCalendarYear 欄位現在會顯示在 索引鍵欄位 清單中。

  6. 按一下 [確定]

  7. 若要設定 EnglishMonthName 屬性的 NameColumn 屬性,請按兩下 [屬性] 視窗中的 [NameColumn] 字段,然後按兩下 [流覽][...] 按鈕。

  8. 在 [ 名稱數據行 ] 對話方塊的 [ 源數據 行] 清單中,選取 MonthName,然後按兩下 [ 確定]。

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

為「日曆季度」屬性定義複合鍵列

  1. 屬性 窗格中,點選 行事曆季 屬性。

  2. 在 [ 屬性] 視窗中,按兩下 [KeyColumns ] 字段,然後按兩下 [瀏覽] 按鈕

  3. 索引鍵欄 對話方塊的 可用欄 清單中,選取 CalendarYear 欄,然後按下 > 按鈕。

    CalendarQuarterCalendarYear 欄位現在會顯示在 關鍵欄位 清單中。

  4. 按一下 [確定]

  5. 若要設定 Calendar Quarter 屬性的 NameColumn 屬性,請按兩下 [屬性] 視窗中的 [NameColumn] 字段,然後按兩下 [流覽][...] 按鈕。

  6. 在 [ 名稱數據行 ] 對話方塊的 [ 源數據 行] 清單中,選取 CalendarQuarterDesc,然後按兩下 [ 確定]。

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

定義行事曆學期屬性的組合 KeyColumns

  1. 屬性窗格中,點擊行事曆學期屬性。

  2. 在 [ 屬性] 視窗中,按兩下 [KeyColumns ] 字段,然後按兩下 [瀏覽] 按鈕

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

    CalendarSemesterCalendarYear 資料行現在會顯示在 關鍵欄 列表中。

  4. 按一下 [確定]

  5. 若要設定 Calendar Semester 屬性的 NameColumn 屬性,請按下屬性視窗中的 NameColumn 字段,然後按覽 (...) 按鈕。

  6. 在 [ 名稱數據行 ] 對話方塊的 [ 源數據 行] 清單中,選取 CalendarSemesterDesc,然後按兩下 [ 確定]。

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

部署和檢視變更

變更屬性和階層之後,您必須先部署變更並重新處理相關物件,才能檢視變更。

部署並查看變更

  1. 在 SQL Server Data Tools 的 [建置] 功能表上,按一下 [部署 Analysis Services 教學]。

  2. 在收到 [部署成功完成] 訊息之後,按一下維度設計師的 [瀏覽器] 索引標籤,然後按一下設計師的工具列上的 [重新連接] 按鈕。

  3. 階層列表中選取行事曆季。 檢閱 Calendar Quarter 屬性階層中的成員。

    請注意, Calendar Quarter 屬性階層的成員名稱較清楚且更容易使用,因為您已建立具名計算來做為名稱。 成員現在存在於每年每個季的 Calendar Quarter 屬性階層中。 成員不會依時間順序排序。 相反地,它們按季排序,然後依年份排序。 在本主題的下一個工作中,您將修改此行為,依年份和季排序此屬性階層的成員。

  4. 檢閱英文月份名稱行事曆學期屬性階層的成員。

    請注意,這些階層的成員也不會依時間順序排序。 相反地,它們會分別依月份或學期排序,然後依年份排序。 在本主題的下一個工作中,您將修改此行為以變更此排序順序。

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

在這項任務中,您將通過變更複合索引鍵的順序來調整排序順序。

修改複合鍵成員順序

  1. 開啟維度設計師的 [維度結構] 索引標籤,然後在 [屬性] 窗格中選取 [日曆學期]。

  2. 在 [屬性] 視窗中,檢閱 OrderBy 屬性的值。 它設定為 [金鑰]。

    [日曆學期] 屬性階層的成員會依鍵值排序。 使用複合索引鍵時,成員索引鍵的順序會先根據第一個成員索引鍵的值,再根據第二個成員索引鍵的值。 換句話說, 行事曆學期 屬性階層的成員會先依學期排序,再依年份排序。

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

  4. 在 [ 索引鍵 數據行] 對話方塊的 [ 索引鍵 數據行] 清單中,確認已選取 CalendarSemester ,然後按下向下箭號來反轉此複合索引鍵的成員順序。 按一下 [確定]

    屬性階層的成員現在會先依年份排序,再依學期排序。

  5. 在 [屬性] 窗格中選取 [行事歷季],然後按兩下 [屬性] 視窗中KeyColumns屬性的省略號瀏覽按鈕 (...)。

  6. 在 [ 索引鍵 數據行] 對話方塊的 [ 索引鍵 數據行] 清單中,確認已選取 CalendarQuarter ,然後按下向下箭號來反轉此複合索引鍵的成員順序。 按一下 [確定]

    屬性階層的成員現在會先依年份排序,再依季排序。

  7. 在 [屬性] 窗格中選取 [英文月份名稱],然後按兩下 [屬性] 視窗中KeyColumns屬性的省略號按鈕 (...)。

  8. 在 [ 索引鍵 數據行] 對話方塊的 [ 索引鍵 數據行] 清單中,確認已選取 EnglishMonthName ,然後按下向下箭號來反轉此複合索引鍵的成員順序。 按一下 [確定]

    屬性階層的成員現在會先依年份排序,再依月份排序。

  9. 在 SQL Server Data Tools 的 [建置] 功能表上,按一下 [部署 Analysis Services 教學]。 部署成功完成時,按兩下維度設計師中的 [瀏覽器 ] 索引標籤, Date 以取得維度。

  10. 在 [ 瀏覽器] 索引標籤的工具列上,按兩下 [重新連線] 按鈕。

  11. 檢閱 行事曆季度行事曆學期 屬性階層的成員。

    請注意,這些階層的成員現在會依時間順序、依年排序,然後分別依季或學期排序。

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

    請注意,階層的成員現在會先依年份排序,然後依月份依字母順序排序。 這是因為數據源檢視中 EnglishCalendarMonth 數據行的數據類型是以基礎關係資料庫中 nvarchar 數據類型為基礎的字串數據行。 如需如何讓月份在每年內依時間順序排序的資訊,請參閱 根據次要屬性排序屬性成員

課程中的下一個工作

瀏覽已部署的立方體

另請參閱

多維度模型中的維度