不足している月を取得するには、すべての月を生成する必要があります。以下は、12 か月を取得するための簡単な定式化を使用します。次にnot in
、値がないものを特定するために使用します。
with mons as (
select rownum r, add_months('01-JAN-2014', rownum - 1) as mon
from dual
connect by rownum <= 12
)
select *
from mons
where not exists (select 1
from maximo_products mp
where to_char(mp.product_date, 'YYYY-MM') =
to_char(mons.mon, 'YYYY-MM')
)
order by r;
編集:
の定義をmons
サブクエリに移動できます。
select *
from (select rownum r, add_months('01-JAN-2014', rownum - 1) as mon
from dual
connect by rownum <= 12
) mons
where not exists (select 1
from maximo_products mp
where to_char(mp.product_date, 'YYYY-MM') =
to_char(mons.mon, 'YYYY-MM')
)
order by r;