手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >sql rollup用法 小计汇总
sql rollup用法 小计汇总
摘要:这里介绍sqlserver2005里面的一个使用实例:CREATETABLEtb(provincenvarchar(10),citynvar...

这里介绍sql server2005里面的一个使用实例:

CREATE TABLE tb(province nvarchar(10),city nvarchar(10),score int)

INSERT tb SELECT '陕西','西安',3

UNION ALL SELECT '陕西','安康',4

UNION ALL SELECT '陕西','汉中',2

UNION ALL SELECT '广东','广州',5

UNION ALL SELECT '广东','珠海',2

UNION ALL SELECT '广东','东莞',3

UNION ALL SELECT '江苏','南京',6

UNION ALL SELECT '江苏','苏州',1

GO

1、 只有一个汇总

select province as 省,sum(score) as 分数 from tb group by province with rollup

结果:

广东10

江苏7

陕西9

NULL26

select case when grouping(province)=1 then '合计' else province end as 省,sum(score) as 分数 from tb group by province with rollup

结果:

广东10

江苏7

陕西9

合计26

2、两级,中间小计最后汇总

select province as 省,city as 市,sum(score) as 分数 from tb group by province,city with rollup

结果:

广东东莞3

广东广州5

广东珠海2

广东NULL10

江苏南京6

江苏苏州1

江苏NULL7

陕西安康4

陕西汉中2

陕西西安3

陕西NULL9

NULLNULL26

select province as 省,city as 市,sum(score) as 分数,grouping(province) as g_p,grouping(city) as g_c from tb group by province,city with rollup

结果:

广东东莞300

广东广州500

广东珠海200

广东NULL1001

江苏南京600

江苏苏州100

江苏NULL701

陕西安康400

陕西汉中200

陕西西安300

陕西NULL901

NULLNULL2611

select case when grouping(province)=1 then '合计' else province end 省,

case when grouping(city)=1 and grouping(province)=0 then '小计' else city end 市,

sum(score) as 分数

from tb group by province,city with rollup

结果:

广东东莞3

广东广州5

广东珠海2

广东小计10

江苏南京6

江苏苏州1

江苏小计7

陕西安康4

陕西汉中2

陕西西安3

陕西小计9

合计NULL26

【sql rollup用法 小计汇总】相关文章:

shp2sqlserver 用法简析

orderby与groupby同时使用方法

sqlserver 常用存储过程集锦

sql server投影查询、选择查询

复习一下sql server的差异备份

sqlserver 通用分页存储过程

sql server 2005数据库备份还原图文教程

sql server 关于设置null的一些建议

sql小计汇总 rollup用法实例分析

Sqlite3中replace语句用法详解

精品推荐
分类导航