2013-10-11 4 views
-1

Ниже мой 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 

А теперь я хочу это будет отображаться как в оракула, используя оператор выбора

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

Shoudnt SEP_MONTH_WORKING be 17 для abc? – Mihai

+0

Второго вопрос ответ: выберите EmpId, work_date OCT_MONTH_WORK_HOURS, RowNum ранг из (выберите EmpId, сумму (случай, когда экстракт (месяц от work_date) = 10, то work_hours конца) work_date от темп группы по EmpId порядка по 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 

Пожалуйста, обратите внимание, что азбука работник на сентябрь должно быть 17, а не 19.

+0

Человек ваш слишком хороший ... это сработало для меня ... спасибо alot :) – user2870912

+0

@ user2870912 - без проблем, рад, что я мог бы помочь! – sgeddes

+0

@ user2870912, пожалуйста, примите ответ, если он сработает для вас. – krokodilko

 Смежные вопросы

  • Нет связанных вопросов^_^