You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server Reporting Services(SSRS)中实现单行多分组统计

问题描述

我已经创建了报表用于展示库存数据,但需要按UOM和Base UOM的不同组合进行分组求和统计。目前只能对单个字段生成总计,无法实现同时基于这两个动态变化的字段进行分组求和,能不能实现如下示例中的统计效果?

库存日期产品编码产品名称数量UOM基准数量Base UOM
12-May-23P002142213Product A150PC150PC
15-May-23P032142432Product B200PC200PC
18-May-23P947289323Product C160CB80BAL
21-May-23P012412323Product D250CB250CB
24-May-23P123412332Product E100PC100PC
27-May-23P124213232Product F260CB260CB
总计570CB80BAL
450PC510CB
450PC
实现方法

1. SQL预处理数据(后端数据源场景)

直接在数据查询阶段完成分组求和,自动适配动态变化的UOM/Base UOM组合:

SELECT
  '' AS 库存日期,
  '' AS 产品编码,
  CASE WHEN GROUPING(产品名称) = 1 THEN '总计' ELSE '' END AS 产品名称,
  SUM(数量) AS 数量,
  UOM,
  SUM(基准数量) AS 基准数量,
  `Base UOM`
FROM 库存表
GROUP BY UOM, `Base UOM` WITH ROLLUP
HAVING UOM IS NOT NULL AND `Base UOM` IS NOT NULL;
  • WITH ROLLUP自动生成分组总计,GROUPING函数标记总计行,可按需调整显示格式;
  • 若只需按组合分组求和,去掉WITH ROLLUP和HAVING即可。

2. 可视化报表工具配置(Tableau/Power BI等)

这类工具原生支持动态分组统计:

  • 将UOM和Base UOM拖入「行/列」分组区域;
  • 把「数量」「基准数量」拖入「值」区域,设置聚合方式为「求和」;
  • 开启「总计」功能,工具会自动根据当前数据的UOM组合生成对应总计,完全适配动态变化的字段值。

3. Excel透视表实现

  • 选中所有数据区域,插入「数据透视表」;
  • 将UOM和Base UOM拖入「行」区域;
  • 把「数量」「基准数量」拖入「值」区域,设置为「求和」;
  • 点击透视表「设计」选项卡,开启「总计」-「仅对行启用」,即可得到示例效果,数据更新后刷新透视表即可适配新的UOM组合。

内容的提问来源于stack exchange,提问作者Novice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:48:12