2013-10-11 79 views
-1

下面是我EMP表,一些樣本數據如何使用選擇查詢顯示Oracle中的輸出

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 

,現在我想這顯示爲在Oracle中使用select語句

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

和你嘗試過什麼? – MaVRoSCy

+0

對於abc,Shoudnt SEP_MONTH_WORKING是17嗎? – Mihai

+0

第二個問題的答案是: 從 選擇 EMPID,work_date OCT_MONTH_WORK_HOURS,ROWNUM秩 (由work_date EMPID順序選擇EMPID,總和(情況下,當提取物(從work_date月)= 10然後work_hours端)從臨時組work_date) – user2870912

回答

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 

請注意,九月ABCS員工應該是17而不是19

+0

男人你太好了...這對我工作...非常感謝:) – user2870912

+0

@ user2870912 - 沒問題,很高興我可以幫助! – sgeddes

+0

@ user2870912如果它適合您,請接受答案。 – krokodilko