欢迎来到代码驿站!

Oracle

当前位置:首页 > 数据库 > Oracle

oracle求和代码示例

时间:2020-10-07 14:26:04|栏目:Oracle|点击:

有一张工资表SALARY如下, (NO 员工编号 ,MONEY 工资)

NO    NAME     ITEM       MONEY
001    张三        工资        80
001    张三        补贴        86
001    张三        奖金        75
002    李四        工资        78
002    李四        补贴        85
002    李四        奖金        78

求每个人的总工资以及所有人的总工资,结果如下表:

结果如下:

姓名    工资      补贴    奖金    总工资
李四     780       850      780     2410
张三     800       860      750     2410
总计    1580     1710     1530   4820

SQL语句:

SELECT DECODE(GROUPING(NAME), 1, '总计', NAME) 姓名,
SUM(DECODE(ITEM, '工资', MONEY, 0))  工资,
SUM(DECODE(ITEM, '补贴', MONEY, 0))  补贴,
SUM(DECODE(ITEM, '奖金', MONEY, 0))  奖金,
SUM(MONEY)  总工资
FROM  SALARY
GROUP  BY  ROLLUP(NAME);

其中:GROUPING函数接受一列,列值为空返回1,非空返回0,只能在使用ROLLUP或CUBE的查询中使用;
DECODE(ITEM,  '工资',  MONEY, 0) 是指ITME的值与‘工资'比较,如果相等返回MONEY,不等返回0

总结

上一篇:Oracle查询表里的重复数据方法

栏    目:Oracle

下一篇:Oracle 低权限数据库账户得到 OS 访问权限 提权利用

本文标题:oracle求和代码示例

本文地址:http://www.codeinn.net/misctech/7910.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有