当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 用SQL语句生成带有小计合计的数据集脚本

MSSQL
如何在把超过固定长度的文字以……表示
精彩的近乎完美的分页存储过程
关于SQL Server SQL语句查询分页数据的解决方案
删除Access数词库中的空记录
在SQLSERVER2005中实现素数计算
经常用到的交叉表问题,一般用动态SQL能生成动态列!
sql server存储过程、存储函数的加密、解密
在SQL Server 2005中查询表结构及索引
取得拼音字头的存储过程
SQL Server自动备份无法删除过期的备份文件
未与信任SQL Server连接相关联的解决方法
小結SQL Server連接失敗錯誤及解決
SQL Server2000+JDBC常见问题及解决
PL/SQL实现Oracle数据库任务调度
Oracle中捕获问题SQL解决CPU过渡消耗
SQL Server 某些条件下求某日的日期
如何保持Oracle数据库的优良性能
SQL Server05 M 3.0 中复制和远程数据访问功能的技术对比
sql server平台用存储过程进行分页的两种方法
sql server 2000中循环插入100万条数据

MSSQL 中的 用SQL语句生成带有小计合计的数据集脚本


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 98 ::
收藏到网摘: n/a

使用SQL语句生成带有小计合计的数据集:

测试用户: scott

测试用表: dept,emp

//////////////////////////////////

//检索出需要进行统计的数据集

select dept.dname,emp.job,sal from emp,dept

where emp.deptno=dept.deptno;

//////////////////////////////////

//根据部门名称以及职位进行汇总,并为每个部门

生成'小计',最后生成'合计'.

select

decode(grouping(dept.dname),1,'合计:',dept.dname)dname,

decode(grouping(emp.job)+grouping(dept.dname),1,'小计:',emp.job)job,sum(sal) sum_sal from emp,dept where emp.deptno=dept.deptno group by rollup(dept.dname,emp.job);

运行结果如下:

SQL> select dept.dname,emp.job,sal from emp,d

DNAME JOB SAL

-------------- --------- ----------

RESEARCH CLERK 800

SALES SALESMAN 1600

SALES SALESMAN 1250

RESEARCH MANAGER 2975

SALES SALESMAN 1250

SALES MANAGER 2850

ACCOUNTING MANAGER 2450

RESEARCH ANALYST 3000

ACCOUNTING PRESIDENT 5000

SALES SALESMAN 1500

RESEARCH CLERK 1100

DNAME JOB SAL

-------------- --------- ----------

SALES CLERK 950

RESEARCH ANALYST 3000

ACCOUNTING CLERK 1300


已选择14行。


SQL> select

2 decode(grouping(dept.dname),1,'合计:',de

3 decode(grouping(emp.job)+grouping(dept.d

ept where emp.deptno=dept.deptno group by rol


DNAME JOB SUM_SAL

-------------- --------- ----------

ACCOUNTING CLERK 1300

ACCOUNTING MANAGER 2450

ACCOUNTING PRESIDENT 5000

ACCOUNTING 小计: 8750

RESEARCH ANALYST 6000

RESEARCH CLERK 1900

RESEARCH MANAGER 2975

RESEARCH 小计: 10875

SALES CLERK 950

SALES MANAGER 2850

SALES SALESMAN 5600


DNAME JOB SUM_SAL

-------------- --------- ----------

SALES 小计: 9400

合计: 29025


已选择13行。


SQL>