下面是我的EMP
表,其中包含一些示例数据
EMPNAME | WORK_DATA | WORK_HOURS
---------------------------------
abc | 01-SEP-13 | 9
xyz | 01-SEP-13 | 8
abc | 02-SEP-13 | 8
xyz | 02-SEP-13 | 7
abc | 01-OCT-13 | 5
xyz | 01-OCT-13 | 7
abc | 02-OCT-13 | 8
xyz | 02-OCT-13 | 7
现在我希望使用select语句
在oracle中显示它EMPNAME | SEP_MONTH_WORKING_HOURS | OCT_MONTH_WORKING_HOURS
-----------------------------------------------------------
abc | 17 | 13
xyz | 15 | 14
Seond怀疑是:
EMPNAME | SEP_MONTH_WORKING_HOURS | RANK
-----------------------------------------------------------
xyz | 15 | 1
abc | 17 | 2
答案 0 :(得分:2)
这应该可以使用extract
:
select empname,
sum(case when extract(month from work_data) = 9 then work_hours end) sept_work_hours,
sum(case when extract(month from work_data) = 10 then work_hours end) oct_work_hours
from emp
group by empname
请注意,9月份的abcs员工应该是17而不是19。