By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table emp_request(emp_id, due_date) as (
select 9, date '2019-01-12' from dual union all
select 7, date '2019-01-19' from dual union all
select 2, date '2019-02-19' from dual union all
select 3, date '2019-02-19' from dual union all
select 7, date '2019-02-24' from dual union all
select 5, date '2019-03-07' from dual union all
select 7, date '2019-03-30' from dual);
7 rows affected
select to_char(to_date(mth_num, 'MM'), 'MONTH') month, nvl(cnt, 0) cnt
from (
select count(emp_id) as cnt, to_char(due_date, 'mm') mth_num
from emp_request where due_date is not null
group by to_char(due_date, 'mm')) e
right join (
select to_char(level, 'fm00') mth_num
from dual connect by level <= 12) m using (mth_num)
order by mth_num
MONTH | CNT |
---|---|
JANUARY | 2 |
FEBRUARY | 3 |
MARCH | 2 |
APRIL | 0 |
MAY | 0 |
JUNE | 0 |
JULY | 0 |
AUGUST | 0 |
SEPTEMBER | 0 |
OCTOBER | 0 |
NOVEMBER | 0 |
DECEMBER | 0 |