有一张工资表SALARY如下, (NO 员工编号 ,MONEY 工资)
NO NAME ITEM MONEY
001 张三 工资 80
001 张三 补贴 &n编程客栈bsp; 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文件方法介绍 等。感谢大家对我们网站的支持。如果你有什么问题或者想要了解的,可以随时给我们留言,小编会及时回复的。










