电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

用SQL实现统计报表中的“小计”和“合计”

用SQL实现统计报表中的“小计”和“合计”_第1页
1/6
用SQL实现统计报表中的“小计”和“合计”_第2页
2/6
用SQL实现统计报表中的“小计”和“合计”_第3页
3/6
用SQL 实现统计报表中的“小计”和“合计” 先来一段概念: ---------------------- DECODE 函数是 ORACLE PL/SQL 是功能强大的函数之一,目前还只有 ORACLE 公司的SQL 提供了此函数,其他数据库厂商的SQL 实现还没有此功能。DECODE 有什么用途 呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在 8000 元以下的将加 20%;工资在 8000 元以上的加 15%,通常的做法是,先选出记录 中的工资字段值? select salary into var-salary from employee,然后对变量 var-salary 用if-then-else 或 choose case 之类的流控制语句进行判断。 如果用DECODE 函数,那么我们就可以把这些流控制语句省略,通过 SQL 语句就可以直接完成。如下:select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee 是不是很简洁? DECODE 的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果 value 等于if1 时,DECODE 函数的结果返回then1,...,如果不等于任何一个 if 值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE 函数具备大于、小于或等于功能。 -------------------------- 在 开发统计报表的过程中,经常会碰到在查询 到的数据集 中,插 入 一些小计行和合计行。比 如在烤 烟 系 统中,几 乎 每 个统计报表都 需 要 加入 “合计”行,还有不少 涉 及 到烟 叶 等级 的统计报表需 要 加入 各 烟 叶 等级 的小计行。我看到不少 人( 包 括 我自 己 )都 是在程序 中专 门 写 一些方 法来处 理 的,有的方 法还很繁 琐 。最 近 在看SQL Server2000 的联 机 丛 书 中才发现,利 用GROUPING 聚 合函数和ROLLUP 运 算符 可以轻 松 实现统计中加入 小计和合计功能。 1. GROUPPING 和 ROLLUP 的基 本 知 识 1.1. GROUPPING 是一个聚 合函数,它 产 生 一个附 加的列 ,当 用 CUBE 或 ROLLUP 运 算符 添 加行时,附 加的列 输 出值为 1,当 所 添 加的行不是由 CUBE 或 ROLLUP 产 生 时,附 加列 值为 0。 语法: GROUPING ( column_name ) 参 数: column_name 是 GROUP BY 子句中用于检 查 CUBE 或 ROLLUP 空 值的列 。 返回类型 : int 备注...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

用SQL实现统计报表中的“小计”和“合计”

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部