不知道你要统计什么时间的。我按最简单的来说明一下。如统计2017年的说明一下。
select deptno,sum(sal+nvl(comm,0))*12 from scott.emp group by deptno
如果是要统计1981年的年薪,就需要用到HIREDATE 也就是入职时间,每一个人员按月计算
select DEPTNO, sum(JE* (CASE WHEN NY>=12 THEN 12 ELSE NY END )) FROM
(select empno,deptno,(sal+nvl(comm,0)) JE ,
months_between(to_date(198201,'yyyymm'),to_date(to_char(hiredate,'yyyymm'),'yyyymm')) NY
from scott.emp
where hiredate
如上,需要months_between比较二个月之差,用CASE when then 控制超出12个月的数据。
SELECT EMPNO,TO_CHAR(HIREDATE,'YYYY'),SUM(SAL)
FROM TABLE
WHERE ???(如果需要条件,自己写)
GROUP BY EMPNO,TO_CHAR(HIREDATE,'YYYY')