select
coalesce(opened.ano, closed.ano) as ano,
coalesce(opened.mes, closed.mes) as mes,
coalesce(opened.cnt, 0) as opened_cases,
coalesce(closed.cnt, 0) as closed_cases
from
(
select
year(open_time) as ano,
month(open_time) as mes,
count(*) as cnt
from table1
where groupdesc = 'SUPPORT'
group by year(open_time), month(open_time)
) opened
full outer join
(
select
year(close_time) as ano,
month(close_time) as mes,
count(*) as cnt
from table1
where groupdesc = 'SUPPORT'
group by year(close_time), month(close_time)
) closed
on opened.ano = closed.ano and opened.mes = closed.mes
where closed.mes is not null
order by coalesce(opened.ano, closed.ano) desc, coalesce(opened.mes, closed.mes) desc;
This is your SQL with an added WHERE clause. Your comments seem to show that what you are looking for IS contained in this results set. There are 10 Opened_cases and 8 closed_cases.