--group by with rollup比较麻烦。还是这样简单。
select 直属部门,样品名称,受检单位,检验费用
from 表
union
select 直属部门,'合计' as 样品名称,'',sum(检验费用)
from 表
group by 直属部门
order by 直属部门,case 样品名称 when '合计' then 1 else 0 end
select 直属部门,样品名称,受检单位,检验费用
from 表
union
select 直属部门,'合计' as 样品名称,'',sum(检验费用)
from 表
group by 直属部门
order by 直属部门,case 样品名称 when '合计' then 1 else 0 end
解决方案 »
- 请问是否有免费sql2008学习版,搜半天没找到.麻烦大家给地址..50分.
- 装上sql2005 managerment studio express,但是还是找不到查询分析器呀?如何用呀?
- ACCESS 转SQL-SERVER2005出现的问题
- 关于mssql数据库字段类型的问题?
- 求为用户授予db_owner权限的sql语句
- 非笛卡尔冗余数据问题
- execl高手 excel中 如何加条件判定语句
- 系统某月各星期的数据,再加100分,在线等.
- 请问如果一个字符变量长度大于8000怎么办?
- 想买一本python3的函数手册一类的书!谁能推荐一个啊?
- 老问题:关于SQL-server远程复制与发布的问题?
- 建库时自动生成存储过程
(
直属部门 varchar(20),
样品名称 varchar(20),
受检单位 varchar(20),
检验费用 int
)
insert @tb
select '省总队', '水果', 'A公司', 200 union
select '省总队', '白糖', 'B公司', 120 union
select '省总队', '项链', 'C公司', 500 union
select '陵水局', '珍珠', 'D公司', 500 union
select '陵水局', '玉器', 'E公司', 600 union
select '陵水局', '钻石', 'F公司', 100 union
select '陵水局', '玛瑙', 'G公司', 200 select * from (select * from @tb
union all
select 直属部门,'合计' as 样品名称,'' as 受检单位,sum(检验费用) as 检验费用 from @tb group by 直属部门) T
order by 直属部门
用楼上两位的吧
(
直属部门 varchar(20),
样品名称 varchar(20),
受检单位 varchar(20),
检验费用 int
)
insert @tb
select '省总队', '水果', 'A公司', 200 union
select '省总队', '白糖', 'B公司', 120 union
select '省总队', '项链', 'C公司', 500 union
select '陵水局', '珍珠', 'D公司', 500 union
select '陵水局', '玉器', 'E公司', 600 union
select '陵水局', '钻石', 'F公司', 100 union
select '陵水局', '玛瑙', 'G公司', 200
select * from
(select * from @tb
union
select 直属部门,'合计' as 样品名称,'' as 受检单位,sum(检验费用) as 检验费用 from @tb group by 直属部门)torder by 直属部门,受检单位 desc/*
直属部门 样品名称 受检单位 检验费用
-------------------- -------------------- -------------------- -----------
陵水局 玛瑙 G公司 200
陵水局 钻石 F公司 100
陵水局 玉器 E公司 600
陵水局 珍珠 D公司 500
陵水局 合计 1400
省总队 项链 C公司 500
省总队 白糖 B公司 120
省总队 水果 A公司 200
省总队 合计 820
*/
declare @tb table
(
直属部门 varchar(20),
样品名称 varchar(20),
受检单位 varchar(20),
检验费用 int
)
insert @tb
select '省总队', '水果', 'A公司', 200 union
select '省总队', '白糖', 'B公司', 120 union
select '省总队', '项链', 'C公司', 500 union
select '陵水局', '珍珠', 'D公司', 500 union
select '陵水局', '玉器', 'E公司', 600 union
select '陵水局', '钻石', 'F公司', 100 union
select '陵水局', '玛瑙', 'G公司', 200 --第一种
select 直属部门,样品名称,受检单位,检验费用
from (select 直属部门,样品名称,受检单位,检验费用 from @tb union
select 直属部门,'合计' as 样品名称,'' as 受检单位,sum(检验费用) from @tb group by 直属部门)a
order by a.直属部门,case 样品名称 when '合计' then 1 else 0 end
--第二种
select 直属部门,样品名称,受检单位,检验费用
from (select 直属部门,样品名称,受检单位,检验费用 from @tb union
select 直属部门,'合计' as 样品名称,'' as 受检单位,sum(检验费用) from @tb group by 直属部门)a
order by a.直属部门,a.受检单位 desc
select 直属部门,样品名称,受检单位,检验费用
from (select 直属部门,样品名称,受检单位,检验费用 from @tb union
select 直属部门,'合计' as 样品名称,'' as 受检单位,sum(检验费用) from @tb group by 直属部门)a
order by a.直属部门,case 样品名称 when '合计' then 1 else 0 end/*直属部门 样品名称 受检单位 检验费用
-------------------- -------------------- -------------------- -----------
陵水局 玛瑙 G公司 200
陵水局 钻石 F公司 100
陵水局 玉器 E公司 600
陵水局 珍珠 D公司 500
陵水局 合计 1400
省总队 项链 C公司 500
省总队 白糖 B公司 120
省总队 水果 A公司 200
省总队 合计 820*/