select * from ( select * from tablename union all select 组,产品='合计',数量 from( select 组,sum(数量) as 数量 from tablename group by 组)a ) b order by 组
--查询处理 select 组,产品=case grouping(产品) when 1 then '合计' else 产品 end ,数量=sum(数量) from 表 group by 组,产品 with rollup having grouping(组)=0
--测试--测试数据 create table 表(组 varchar(10),产品 varchar(10),数量 int) insert 表 select '组1','产品1',100 union all select '组1','产品2',200 union all select '组1','产品3',300 union all select '组2','产品12',200 union all select '组2','产品22',200 union all select '组2','产品32',400 go--查询处理 select 组,产品=case grouping(产品) when 1 then '合计' else 产品 end ,数量=sum(数量) from 表 group by 组,产品 with rollup having grouping(组)=0 go--删除测试 drop table 表/*--测试结果组 产品 数量 ---------- ---------- ----------- 组1 产品1 100 组1 产品2 200 组1 产品3 300 组1 合计 600 组2 产品12 200 组2 产品22 200 组2 产品32 400 组2 合计 800(所影响的行数为 8 行) --*/
zjcxc(邹建) : 你的语句: create table 表(组 varchar(10),产品 varchar(10),数量 int) insert 表 select '组1','产品1',100 union all select '组1','产品2',200 union all select '组1','产品3',300 union all select '组2','产品12',200 union all select '组2','产品22',200 union all select '组2','产品32',400 go是一行行写出来的? 还是用其它工具生成的?怎会这么快的啊.............
select 组,产品,数量 from 表 order by 组 compute count(产品),sum(数量) by 组
(
select * from tablename
union all
select 组,产品='合计',数量 from(
select 组,sum(数量) as 数量 from tablename group by 组)a
) b
order by 组
select 组,产品=case grouping(产品) when 1 then '合计' else 产品 end
,数量=sum(数量)
from 表
group by 组,产品 with rollup
having grouping(组)=0
create table 表(组 varchar(10),产品 varchar(10),数量 int)
insert 表 select '组1','产品1',100
union all select '组1','产品2',200
union all select '组1','产品3',300
union all select '组2','产品12',200
union all select '组2','产品22',200
union all select '组2','产品32',400
go--查询处理
select 组,产品=case grouping(产品) when 1 then '合计' else 产品 end
,数量=sum(数量)
from 表
group by 组,产品 with rollup
having grouping(组)=0
go--删除测试
drop table 表/*--测试结果组 产品 数量
---------- ---------- -----------
组1 产品1 100
组1 产品2 200
组1 产品3 300
组1 合计 600
组2 产品12 200
组2 产品22 200
组2 产品32 400
组2 合计 800(所影响的行数为 8 行)
--*/
你的语句:
create table 表(组 varchar(10),产品 varchar(10),数量 int)
insert 表 select '组1','产品1',100
union all select '组1','产品2',200
union all select '组1','产品3',300
union all select '组2','产品12',200
union all select '组2','产品22',200
union all select '组2','产品32',400
go是一行行写出来的?
还是用其它工具生成的?怎会这么快的啊.............
from 表
order by 组
compute count(产品),sum(数量) by 组