首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

快逸報表練習 (5.5) 續:另一組多層交叉匯總報表範本解析

     編輯:關於SqlServer

本文提供第 2 組多層交叉匯總練習範本,結構與練習一不同:採用 **三層上表頭** (年份 → 季度 → 月份) 與 **單層左表頭** (業務員),適合銷售績效月度趨勢分析場景。

報表結構速覽

  • 上表頭 (3 層橫向):年份 → 季度 → 月份 (時間維度下鑽)
  • 左表頭 (1 層縱向):業務員
  • 資料區:銷售額 SUM、達成率 AVG、客戶數 COUNT

單元格佈局對照

儲存格公式擴展方向層級
B1=ds1.group(年份, false)橫向L1
B2=ds1.group(季度, false)橫向L2 (父 B1)
B3=ds1.group(月份, false)橫向L3 (父 B2)
A4=ds1.group(業務員, true)縱向L1
B4=ds1.sum(銷售額)交叉-
C4=ds1.avg(達成率)交叉-
D4=ds1.count(客戶ID)交叉-

進階應用技巧

  1. 動態標題:報表標題用 = "銷售趨勢 " + ds1.max(年份) + " 年" 自動帶入年度
  2. 條件格式:達成率 < 80% 標紅、> 120% 標綠,快速識別異常
  3. 穿透下鑽:設定月份欄位超連結,點擊跳轉明細報表 (drilldown.raq?year=...&month=...&emp=...)
  4. 固定凍結:左表頭 (業務員) 設定凍結列,橫向捲動時保持可見

常見錯誤與修正

錯誤現象原因修正
季度/月份順序錯亂group 排序參數未指定或資料本身無序資料集加 ORDER BY 年份, 季度, 月份;group 第 2 參數 false 升序
達成率顯示整數資料型別為 INT,除法截斷轉型 =ds1.avg(CAST(達成率 AS FLOAT)) 或資料集預先 * 1.0
總計行重複縱向群組重複觸發總計總計公式放於報表尾區塊,非群組內

對比兩組練習的設計哲學

維度練習一 (產品×地區)練習二 (時間×業務員)
上表頭層數2 層 (平行維度)3 層 (階層維度/時間下鑽)
左表頭層數2 層 (產品類別→產品)1 層 (業務員)
指標類型雙加總 (銷售額/數量)加總+平均+計數 (混合彙總)
業務問題庫存/產品組合分析績效趨勢/季節性洞察

完成兩組練習,你將具備從扁平化資料集快速建構任意維度交叉報表的核心能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved