获取月薪和总薪水的oracle数据库查询

时间:2016-08-26 04:56:38

标签: sql oracle

我有一张表,其中存储了员工的月薪。

create table myemp
( 
 empno number ,
 month number,
 year number,
 salary number
);

现在我需要一个查询来获得如下所示的结果

empno|month|Year|salary
0001    2   2016        10000
0001    3   2016    11000
0001    4   2016    12000
0001    --  ----    (10000+11000+12000)
0002    2   2016    15000
0002    3   2016    16000
0002    4   2016    15000
0002    --  ----(15000+16000+15000)

3 个答案:

答案 0 :(得分:2)

我们可以使用oracle的Rollup函数设置总数和小计,如下所示

select empno,month,year,sum(salary) from myemp
GROUP BY year,ROLLUP (empno,month)

这里的empno和month是汇总函数,给出了总和和小计 empno和月组。

我希望这会有所帮助。

答案 1 :(得分:1)

你走了:

SELECT *
FROM (
    (
        SELECT empno, month, year, salary
        FROM myemp
    )
    UNION ALL
    (
        SELECT empno, NULL AS month, NULL AS year, sum(salary)
        FROM myemp
        GROUP BY empno
    )
) AS foo
ORDER BY empno, year IS NULL, year, month

答案 2 :(得分:0)

看起来像这样 选择姓氏,dept_no,工资,       sum(salary)over(dept_no order by lastname)dept_total 来自myemp 按工资,姓氏排序;