这种问题通常是在前台解决当然后台也能解决:
select 单号,数量1=sum(数量1),数量2=sum(数量2) from 表 group by 单号
union all
select 单号='合计',数量1=sum(数量1),数量2=sum(数量2) from 表
select 单号,数量1=sum(数量1),数量2=sum(数量2) from 表 group by 单号
union all
select 单号='合计',数量1=sum(数量1),数量2=sum(数量2) from 表
解决方案 »
- 存储过程生疏,还望指教
- 求一个计算采购节约金额的存储过程
- 选择列表中的列 'oa_bbs_comment.AUTHOR_NAME' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
- 你做项目时建数据库数据库名称,表名,字段名都是怎么命名的?
- 如何取得空缺的id
- excel文档导入sqlserver2000的问题
- 怎样让远端客户访问MS SQL 2000服务器上的数据?
- 高手指路:我要做网上网下数据库同步怎么做?
- (附图)数据库中多出了一个d99_tmp表
- 新萌求助
- 开始菜单中SQL server 企业管理器 点了没反映,也没什么报错,查询分析器可以使用。郁闷中……
- SQL筛选问题,在线等!
WITH ROLLUP
在生成包含小计和合计的报表时,ROLLUP 运算符很有用。ROLLUP 运算符生成的结果集类似于 CUBE 运算符所生成的结果集。有关更多信息,请参见用 CUBE 汇总数据。 CUBE 和 ROLLUP 之间的区别在于: CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
例如,简单表 Inventory 中包含:Item Color Quantity
-------------------- -------------------- --------------------------
Table Blue 124
Table Red 223
Chair Blue 101
Chair Red 210 下列查询将生成小计报表:SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL'
ELSE ISNULL(Item, 'UNKNOWN')
END AS Item,
CASE WHEN (GROUPING(Color) = 1) THEN 'ALL'
ELSE ISNULL(Color, 'UNKNOWN')
END AS Color,
SUM(Quantity) AS QtySum
FROM Inventory
GROUP BY Item, Color WITH ROLLUPItem Color QtySum
-------------------- -------------------- --------------------------
Chair Blue 101.00
Chair Red 210.00
Chair ALL 311.00
Table Blue 124.00
Table Red 223.00
Table ALL 347.00
ALL ALL 658.00