SQL 取合计数

来源:百度知道 编辑:UC知道 时间:2024/06/19 03:48:49
比如有一张表
名称 材质 数量
A 1 20
A 1 30
A 2 10
B 3 40
通过语句生成一张查询报表为
名称 材质 数量
A 1 20
A 1 30
合计 50
A 2 10
合计 10
总计 60
B 3 40
合计 40
总计 40
通过分类汇总,比如group by语句,可以查询出数据,但是如何加上合计栏呢?

通过编程手段来实现吧
先将查询数据放入datatable,然后再循环datatable取合计

试下这个呢:
select 名称,材质,数量 from [数据表名]
union
select 名称,材质,sum(数量) from [数据表名] group by 名称,材质
union
select 名称,'总计',sum(数量) from [数据表名] group by 名称
order by 名称,材质,数量

或者这个:
select 名称,材质,'明细' as 类别,数量 from [数据表名]
union
select 名称,材质,'合计',sum(数量) from [数据表名] group by 名称,材质
union
select 名称,'总计','总计',sum(数量) from [数据表名] group by 名称
order by 名称,材质,类别,数量

所要的数据是没有问题的,关键是排序,要排成LZ希望的那样有点麻烦,可能需要再动下脑筋了。

楼主的要求
select 名称,材质,sum(数量)
from 表
group by 名称,材质

SQL 的数值计算函数
sum() 汇总
AVG() 取平均数
MAD() 找最大数
MIN() 找最小数
count() 统计个数

select 名称,材质,sum(数量)
from 表
group by 名称,材质 一定行的,不行mm我