在使用「資料組合 / 樞紐分析」功能時,系統預設會對數值欄位進行加總(SUM),但若資料中包含比例類型的欄位,直接加總將導致結果不正確。 為了讓分析結果更貼近實際需求,建議可先透過「群組加總」功能彙總數值,並計算出正確的比例值,再以「合併資料」整合, 最後使用「樞紐分析」僅作為欄位分類呈現使用,而不再進行加總運算。
換句話說,「樞紐分析」建議用於資料呈現的格式轉換,彙總與計算動作應事先處理完畢再進行。以下為設計範例提供你參考。
此章節包含主題:
當需要將某個欄位的資料值(例如:月份、假別、部門)轉換為橫向欄位呈現,並依不同分類顯示對應的統計數值時,適合使用「資料組合 / 樞紐分析」功能。
可以參考以下範例學習。
在主畫面上方工具列,點選綠色「Q」圖示,新增一個查詢及報表,準備開始設計資料組合的查詢內容。
在「新增查詢及報表」視窗中,填寫標題「樞紐分析」,完成後點選「確定」,建立新的查詢頁面。

在「選擇」視窗中,點選左側的「從資料開始設計」,透過設定 OLTP 或資料倉儲的資料來源,建立查詢設計。

在「資料來源」設定畫面中,左側選擇來源類型為「OLTP」,右側點選欲使用的資料庫(OSI_SQL7),確認後點選「確定」,完成資料來源的連結設定。

在 SQL 編輯畫面中,輸入查詢語法,範例如圖,作為後續分類統計的資料來源,完成 SQL 撰寫後,點選右下角「確定」,儲存查詢設定。
以下為查詢的 SQL 範例語法:
|
Select |
完成查詢後,系統會將查詢結果中的欄位自動展開顯示,年、月、類別名稱、產品、金額等。這些欄位將作為後續樞紐分析的依據來源。

在欄位區點擊右鍵,選擇「新增彙總欄位」,可快速建立需要進行彙總統計的欄位,為後續的樞紐分析提供對應的彙總值來源(金額加總)。

設定彙總欄位名稱與標題為「sum金額」,彙總方式選擇「合計」,彙總欄位選擇「金額」,表示針對金額欄位進行加總。此欄位將作為後續樞紐分析中的數值依據,接著點選群組欄位後面的圖示,選擇要群組的欄位。
在彙總欄位設定中,點擊群組欄位後選取「年」、「月」及「類別名稱」作為群組依據,按下「確定」後,系統將依這三個欄位進行分組並計算金額總和。

完成彙總設定後,若此欄位僅供計算使用、不需顯示於畫面上,可在「擴充屬性」中新增「隱藏」屬性,系統將在畫面中隱藏此欄位,避免干擾查詢呈現。
於「欄位」節點上按右鍵,選擇「新增運算欄位」,可用來設定例如加總後比例、加權平均等運算公式,進一步強化分析欄位的呈現效果。

新增一個名為「所佔比例」的運算欄位,欄位類型為 double,接著點選右側的「運算公式」按鈕以編輯公式內容,用來計算各筆資料佔總和的比例。
在運算公式編輯器中,輸入 $金額$/$sum金額$,計算每筆金額佔總金額的比例。完成後點選「確定」,儲存公式設定。
完成所佔比例的公式後,點選右側「新增屬性」,選擇「Mask顯示格式」,並將格式設定為 0.00%,即會以百分比方式呈現此欄位的數值,最後點選「確定」完成欄位設定。
於「資料組合」上點選右鍵,選擇「新增群組加總」,用來彙總欄位資料(如總金額、各分類比率等),為後續進行樞紐分析準備彙整好的資料來源。

在群組加總設定中,點選左上角「群組欄位」按鈕,選擇需要進行彙總依據的欄位(年、月、類別名稱),點選「確定」後完成欄位加入。這些欄位將作為彙總的分群依據。
點選「加總欄位」按鈕,選擇要加總的欄位(金額),系統預設加總方式為「合計」,並自動命名新欄位名稱(如:金額_Sum)。確認設定後點選「確定」完成彙總欄位的設定。
在群組加總的 Group1 節點上,點選右鍵選擇「新增彙總欄位」,可進一步針對群組結果進行統計彙總,例如計算佔比或其他加總結果的擴充。

為新增的彙總欄位設定合計方式與群組條件,並選擇來源欄位「金額_Sum」,再透過「新增屬性」將該欄位設為隱藏,避免在畫面上多餘顯示,最後點選「確定」完成設定。
於「Group1」資料組合中,點擊欄位右鍵並選擇「新增運算欄位」,準備建立計算所佔比例的欄位,用於後續樞紐分析中的百分比呈現。

建立一個名稱為「月_總」的運算欄位,型別選擇 int,並輸入固定數值 13 作為運算公式,用來代表每年固定的月份總數,方便後續比例運算使用。
於「Group1」資料組合中,點選「欄位」右鍵,選擇「新增運算欄位」,準備設定一個透過欄位間計算得到的新欄位,用來進行進一步的資料分析。

輸入欄位名稱與標題為「所佔比例」,計算公式為 $金額_Sum$/$Column1$,代表將每筆金額佔總金額的比例計算出來,點選「確定」完成欄位新增。
在「資料組合」上點擊右鍵,選擇「新增合併資料」,用來將多個資料來源以相同欄位進行資料列合併,適合同類型資料彙整用途。

選擇主資料與合併資料,並依據相同欄位進行鍵值對應,例如將「年 → 年」、「月 → 月_總」、「類別名稱 → 類別名稱」、「產品 → 產品」等欄位進行配對,點選「下一步」進入後續設定。

在這一步中,設定需要從合併資料來源中帶入的欄位,例如「金額 → 金額_Sum」與「所佔比例 → 所佔比例」。設定完成後,點選「確定」,完成合併資料的設定。

在「合併資料」畫面中,確認雙方資料來源的合併鍵值與欄位對應是否正確。若鍵值與資料欄位皆已設定完成,請點選「確定」,即可完成資料合併設定。
在合併完成的資料集 Union1 下,點選欄位選單中的「新增運算欄位」,以便進一步計算所需的分析結果或比例值。這步驟常用來建立新的計算欄位,為後續的樞紐分析準備好資料格式。

為了讓樞紐分析中「月份」欄位顯示更直覺,建立一個轉換欄位「月_文字」,將數字 13 替換為「總計」,其他則補零轉為兩位數字顯示。 在運算公式中使用:IIF($月$==13,"總計",ToText($月$,"00")),這樣在視覺化呈現時就能清楚區分總計列,避免混淆月份排序。
於「資料組合」中點選右鍵,選擇【新增樞紐分析】功能,進入後續的樞紐設定步驟。此功能可用來將資料依欄位進行分類分組,在視覺化畫面上呈現交叉統計結果,常見於月份、地區、產品等維度的橫向展開。

進入「樞紐分析」設定後,選擇資料表為 Union1,接著將所需欄位依用途拖拉至以下區塊:
「欄」區放置時間或分類欄位(如:年、月_文字)。
「列區域」拖入要橫向展開的分類欄位(如:類別名稱、產品)。
「資料區域」放入需統計的數值欄位(如:金額、所佔比例),系統會自動套用「合計」運算。
若想讓使用者可依「年」欄位查詢資料,可在欄位上點選右鍵,選擇「新增至單一條件」。此動作會將欄位加入查詢條件區,方便在報表查詢畫面中提供使用者選擇。

在欄位建立為查詢條件後,可以進一步設定條件的顯示名稱(例如:「年度」)、控制項類型,以及是否以 SQL 運算式套用。 若希望條件以「條件運算式」的方式套用至 SQL 查詢中,請取消勾選「套用到 SQL」, 並於公式欄位輸入完整的 SQL 條件語法(and year(訂貨主檔.訂單日期)={{$param.年度$}})。 設定完成後,系統在查詢時會依照使用者所輸入的條件進行 SQL 篩選。
點選查詢資料表(如:Query1),並於 SQL 編輯器中,在 where 條件區塊加入條件參數 {{$paramExp.年度$}},即可將「年度」條件以運算式方式帶入 SQL 語法中,實現依使用者輸入值過濾資料的效果。條件可直接從右側拖曳至 SQL 編輯區。
在完成樞紐分析設定後,右鍵點選 CrossTab1,選擇「設為主要資料表」,並點選上方的「儲存」按鈕,讓後續報表設計時能以此資料表為主來源。

報表執行後,畫面會依據設定好的「年、月_文字」作為列標題,「類別名稱、產品」作為欄標籤,並在資料區域中呈現「金額」與「所佔比例」兩欄指標。
透過樞紐分析的方式,使用者可一目瞭然各類別、產品在每月的金額分布與比例變化情形,達成分類統計與視覺比較的目的。
以下是「另一種簡易作法」來達成與最上圖相似的樞紐分析比例呈現效果的參考步驟:
從資料組合中,點選「新增樞紐分析」功能,開始設定樞紐分析畫面。

在此畫面中: 選擇資料集與資料表來源(例如:Oltp1 資料集下的 Query1),接著拖拉欄位至右側的欄位區(年、月)、列區域(類別名稱、產品),以及資料區域(如:金額、sum金額、所佔比例)進行交叉分析。
點選「資料區域」欄位右側的下拉選單,可選擇不同的彙總方式,例如合計、平均值、最大值等。如圖所示,將「sum金額」欄位的統計方式調整為「最大值」,可用來查看各交叉分類下的最大金額數值,進一步觀察資料分布。

在資料區域中選擇「所佔比例」欄位後,點擊彙總方式下拉選單,選擇「以加總結果運算」。

在「所佔比例」欄位中,打開腳本編輯器,輸入以下公式:$金額$ / $sum金額$,設定完成後,點選右下角的【確定】儲存。

點選【確定】後即可儲存樞紐設定,進入預覽畫面檢視報表結果。
在完成樞紐分析設定後,右鍵點選 CrossTab1,選擇「設為主要資料表」,並點選上方的「儲存」按鈕,系統會以此作為查詢預設顯示結果。
