樞紐分析,預設提供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:點擊視窗右上角+新增屬性,選擇「顯示/隱藏」,將此新增的彙總欄位隱藏
Step1:在Group1的欄位上點擊右鍵,選擇「新增運算欄位」
Step2:名稱及標題為「月_總」,型別選擇「int」,運算公式為「13」
Step3:重複Step1,新增第二個欄位,
名稱及標題輸入「所佔比例」,型別選擇「double」,運算公式為「$金額_Sum$/$Column1$」
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,這樣查詢結果完,會只顯示此份資料表的資料