如何製作樞紐分析(CrossTable)

樞紐分析,預設提供SUM的效果,如果的是比例的欄位值,則系統會將比例進行加總,這樣的結果不會是使用者想看到的, 可利用資料組合的群組加組先將比例的值計算出來,再Union後,再進行樞紐分析呈現。
也就是要呈現的資料先處理好,只透過樞紐分析進行分隔欄位(不利用樞紐分析的加總功能)

事先將各項資SUM彙總及計算所佔比例,再透過「資料組合/樞紐分析」功能呈現

此章節包含的主題:

樞紐分析的查詢結果

樞紐分析的查詢結果(可點擊圖片放大)

新增查詢

  • Step1:新增一個查詢(Query)頁面,系統名稱為預設,顯示名稱命名為「樞紐分析二」

  • Step2:選擇OLTP資料來源,資料庫選擇OSI_SQL7,點選確定後,貼上SQL語法,即可點選完成

    SQL語法如下:
    Select
    Year(訂貨主檔.訂單日期) as 年,
    Month(訂貨主檔.訂單日期) as 月,
    產品類別.類別名稱,
    產品資料.產品,
    (訂貨明細.單價*訂貨明細.數量) as 金額
    From 訂貨主檔, 訂貨明細, 產品資料,產品類別
    where
    訂貨主檔.訂單號碼=訂貨明細.訂單號碼
    and 訂貨明細.產品編號=產品資料.產品編號
    and 產品資料.類別編號=產品類別.類別編號

  • Step3:建立完成後,切換頁籤到「資料規格」,即可檢視匯入的欄位

新增查詢

新增彙總欄位和運算欄位

  • Step1:在Query1的欄位上點擊右鍵,選擇「新增彙總欄位」

  • Step2:名稱及標題輸入「sum金額」,彙總方式選擇「合計」,
    群組欄位選擇「年、月、類別名稱」、彙總欄位選擇「金額」

  • Step3:點擊視窗右上角+新增屬性,選擇「顯示/隱藏」,將此新增的彙總欄位隱藏

  • Step4:重複Step1,選擇「新增運算欄位」

  • Step5:名稱及標題輸入「所佔比例」,型別選擇「double」,
    運算公式輸入:「$金額$/$sum金額$」

  • Step6:點擊視窗右上角+新增屬性,選擇「通用屬性/Mask顯示格式」,Mask選擇「0.00%」

新增彙總欄位和運算欄位

資料組合-啟用群組加總及彙總欄位

  • Step1:在資料組合上點擊右鍵,選擇「新增群組加總」,名稱為「Group1」

  • Step2:群組欄位點擊+選擇「年、產品、類別名稱」
    加總欄位+選擇「金額」,彙總方式選擇「合計」,顯示名稱為預設,點擊確定及完成群組加總

  • Step3:在Group1的欄位上點擊右鍵,選擇「新增彙總欄位」

  • Step4:名稱及標題為預設,彙總方式選擇「合計」,
    群組欄位選擇「年、類別名稱」,彙總欄位選擇「金額_Sum」

  • Step5:點擊視窗右上角+新增屬性,選擇「顯示/隱藏」,將此新增的彙總欄位隱藏

新增群組加總

在Group1新增2個運算欄位

  • Step1:在Group1的欄位上點擊右鍵,選擇「新增運算欄位」

  • Step2:名稱及標題為「月_總」,型別選擇「int」,運算公式為「13」

  • Step3:重複Step1,新增第二個欄位,
    名稱及標題輸入「所佔比例」,型別選擇「double」,運算公式為「$金額_Sum$/$Column1$」

新增2個運算欄位

資料組合-啟用合併資料

  • Step1:在資料組合上點擊右鍵,選擇「新增合併資料」,名稱為「Union1」

  • Step2:左側資料集選擇「Oltp1」,主資料選擇「Query1」,右側資料集選擇「.Views」,主資料選擇「Group1」

  • Step3:將「年對年」、「月對月_總」、「類別名稱對類別名稱」、「產品對產品」,分別新增至合併鍵值,點擊下一步

  • Step4:將「金額對金額_Sum」、「所佔比例對所佔比例」,分別新增至合併欄位,點擊確定,即完成合併資料

  • Step5:在Union1的欄位上點擊右鍵,選擇「新增運算欄位」

  • Step6:名稱及標題為「月_文字」,型別選擇「string」,運算公式為「IIF($月$==13,"總計",ToText($月$,"00"))」

新增合併資料

資料組合-啟用樞紐分析

  • Step1:在資料組合上點擊右鍵,選擇「新增樞紐分析」,名稱為「CrossTab1」,
    資料集選擇「.Views」,資料表選擇「Union1」

  • Step2:將「年、月_文字」拖曳至欄,「類別名稱、產品」拖曳至列,「金額、所佔比例」拖曳至資料

  • Step3:將此份樞紐分析表設定為主要資料表,在聯結後的資料表名稱上右鍵,選擇「設為主要資料表」, 完成後資料表名稱旁會有一顆黃色星星的icon,這樣查詢結果完,會只顯示此份資料表的資料

新增樞紐分析

新增查詢條件

將年度設為查詢條件,讓查詢資料依照所選年度過濾

  • Step1:在Query1的欄位上選擇「年」點擊右鍵,選擇「新增至條件/單一條件」

  • Step2:將共用條件中的「年」點選調整,名稱及標題輸入「年度」,取消勾選「套用至SQL」,公式輸入:and year(訂貨主檔.訂單日期)={{$param.年度$}}

  • Step3:選擇Query的SQL語法,於where的最下方新增:{{$paramExp.年度$}}

新增查詢條件

範例二:調整樞紐分析設定

另一種樞紐分析簡易作法,也可作到如最上圖的比例效果參考步驟

Step1.新增查詢

Step2.新增彙總欄位和運算欄位

Step3.在資料組合上點擊右鍵,選擇「新增樞紐分析」,名稱為「CrossTab1」,
資料集選擇「Oltp1」,資料表選擇「Query1」

Step4:將「年、月_文字」拖曳至欄,「類別名稱、產品」拖曳至列,「金額、SUM金額、所佔比例」拖曳至資料

Step5:在樞紐分析的資料區域,針對 "SUM金額" 右鍵選擇最大值

Step6:在樞紐分析的資料區域,針對 "所佔比例" 右鍵選擇以加總結果運算,並設定公式 「$金額$/$sum金額$」

Step7:將此份CrossTab1表設定為主要資料表,右鍵,選擇「設為主要資料表」,完成後CrossTab1資料表名稱旁會有一顆黃色星星的icon,這樣查詢結果完,會只顯示此份資料表的資料

Copyright © 2014 Smart eVision Information Technology Inc. All rights reserved