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 虚拟专用数据库详细介绍、 oracle数据库导入TXT文件方法介绍 等。感谢大家对网站的支持。如果你有什么问题或者想要了解的,可以随时给我们留言,小编会及时回复的。

您可能有感兴趣的文章
Oracle缩表空间的完整如何解决实例

详解Oracle控制文件及日志文件的管理问题

oracle指定类型和指定位数创建序列号的代码详解

Oracle官方工具SQLDeveloper的简单如何使用

Oracle中锁(lock)的用法