資料樞紐表提供資料的三維視圖,雖然 Excel 內建支援,但在 Web 應用中整合並不容易。本文提供一套完整解決方案,將 DataTable 的二維資料轉換為三維樞紐報表,並揭開演算法奧秘。
將銷售資料從二維表格轉為「業務員 × 產品」的交叉統計視圖。典型 SQL 查詢如下:
SELECT
SalesPeople.FullName AS [Sales Person],
Products.FullName AS [Product],
SUM(Sales.SalesAmount) AS [Sale Amount],
SUM(Sales.Qty) AS [Quantity]
FROM Sales
JOIN SalesPeople WITH (NOLOCK) ON SalesPeople.SalesPersonID = Sales.SalesPersonID
JOIN Products WITH (NOLOCK) ON Products.ProductCode = Sales.ProductCode
GROUP BY SalesPeople.FullName, Products.FullName
Sales Person Product Quantity Sale Amount John Pens 200 350 John Pencils 400 500 John Notebooks 100 300 ... ... ... ... Sarah Back Packs 50 2020
演算法步驟:
// 概念性流程
1. 掃描 DataTable,收集唯一行值與列值
2. 建立二維陣列 [行數, 列數] 儲存彙總值
3. 逐行累加至對應儲存格
4. 輸出為 HTML Table 或繫結至 GridView
PIVOT (SQL Server) 或 CROSSTAB (Access/PostgreSQL) 直接轉換,減少前端運算。本文附贈完整原始碼下載,包含核心轉換類別與示範專案,可直接整合至專案中。